【问题标题】:Updating db field if data is present如果存在数据,则更新 db 字段
【发布时间】:2016-08-25 22:15:51
【问题描述】:

我似乎无法让我的代码 100% 正常工作。我试图让我的代码以这样的方式工作:

如果列值为空 ($id = columnName),则插入该行。如果找到该$id 的“值”,则更新已保存在数据库中的值。

功能:

     $socialCheck = SocialSettings::where($id)->first();

       $socialInsert = new SocialSettings;

       $value        = Request::input('value'); 


       if(SocialSettings::where_not_null($id)){

           $socialInsert->$id = $value;
           $socialInsert->save();
   }else{
        $socialCheck->update($value);

   }

    }

【问题讨论】:

  • 如果您使用 mysql 并且愿意使用 DB::raw() 准备绑定语句,那么您可以使用 REPLACE INTO 语句
  • 你找到解决办法了吗?

标签: php laravel


【解决方案1】:

这是一个类似问题的例子

$user = User::firstOrNew(array('name' => Input::get('name')));
$user->foo = Input::get('foo');
$user->save();

这样

$socialCheck = SocialSettings::firstOrNew(array('id' => $id));
$socialCheck = Request::input('value');
$socialCheck->save();

firstOrNew Laravel API DOCS

【讨论】:

    猜你喜欢
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 2021-04-24
    • 2021-12-10
    • 1970-01-01
    • 2016-11-19
    相关资源
    最近更新 更多