Php Laravel DB表和雄辩的方法UPDATEORCEATE

Php Laravel DB表和雄辩的方法UPDATEORCEATE,php,laravel,eloquent,Php,Laravel,Eloquent,但此代码返回错误: 调用未定义的方法 照亮\Database\Query\Builder::updateOrCreate() 因此,根据这个答案(用户stanb),我补充道: 更改代码: DB::table($this->table)->updateOrCreate([ 但我仍然有同样的错误,这是一种很有说服力的方法,所以你需要使用model。另外,你需要传递两个数组作为参数: protected $table = 'mytable'; 在本例中,如果有一条记录user\u id=$user\

但此代码返回错误:

调用未定义的方法 照亮\Database\Query\Builder::updateOrCreate()

因此,根据这个答案(用户stanb),我补充道:

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


但我仍然有同样的错误,这是一种很有说服力的方法,所以你需要使用model。另外,你需要传递两个数组作为参数:

protected $table = 'mytable';
在本例中,如果有一条记录
user\u id=$user\u id
,则该记录将被更新

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

我不同意另一个答案,我们可以使用query builder来插入或更新。

也许可以,但请参阅stanb response@michal这没有关系,因为您试图在query builder实例上使用此方法,而不是在雄辩的模型上。只需尝试答案中的代码。我知道我可以创建一个我想用另一种方式检查的模型;)但是谢谢您的回答。@michal不可能将该方法用于
DB::table()
但是您可以将updateOrInsert用于DB::table。但是updateOrCreate不起作用。感谢您给出一个示例,我们可以在其中实际指定表。这是在我的案例中唯一有效的示例。
Model::updateOrCreate([
  'user_id' => $user_id
],
[
  'active' => 1,
  'created_at' => Carbon::now()
]);
DB::table('table name')
->updateOrInsert(
    ['email' => 'admin@admin.com', 'name' => 'Admin'],
    ['id' => '7']
);