Laravel DB表和eloquent方法updateOrCreate

时间:2018-02-14 18:20:07

标签: php laravel eloquent

    DB::table("mytable")->updateOrCreate([
      'user_id' => $user_id,
      'active' => 1,
      'created_at' => Carbon::now()
    ]);

但是这段代码给我的错误:

  

调用未定义的方法   照亮\数据库\查询\生成器:: updateOrCreate()

所以,根据这个答案link(用户 stanb )我添加了:

protected $table = 'mytable';

并更改代码: DB::table($this->table)->updateOrCreate([ ...

但我仍有同样的错误

3 个答案:

答案 0 :(得分:1)

这是Eloquent方法,所以你需要使用模型。此外,您需要传递两个数组作为参数:

Model::updateOrCreate([
  'user_id' => $user_id
],
[
  'active' => 1,
  'created_at' => Carbon::now()
]);

在此示例中,如果记录中有user_id = $user_id,则记录将更新。

答案 1 :(得分:1)

DB::table('table name')
->updateOrInsert(
    ['email' => 'admin@admin.com', 'name' => 'Admin'],
    ['id' => '7']
);

我不同意其他答案,我们可以使用查询生成器来插入或更新。

答案 2 :(得分:-1)

将此添加到模型中

"sample"