如何在 Laravel 5.4 中的 firstOrCreate 中使用 where
How can use a where in firstOrCreate in Laravel 5.4
如何使用这样的代码:
$db = ModelName::firstOrCreate(['bot_id'=>10, 'bot_text'=>$botTxt->id])
->where('updated_at','<=', Carbon::today());
这无法正常工作。
正确的语法是:
ModelName::where('updated_at','<=', Carbon::today())
->firstOrCreate(['bot_id' => 10, 'bot_text' => $botTxt->id]);
此外,由于 firstOrCreate()
使用批量分配功能,请确保您已在 ModelName
class 中定义 $fillable
属性:
protected $fillable = ['bot_id', 'bot_text'];
您也可以像这样在 firstOrCreate 方法的第一个参数中传递条件:
$db = ModelName::firstOrCreate([
['updated_at','<=', Carbon::today()],
'bot_id'=>10,
'bot_text'=>$botTxt->id
]);
如何使用这样的代码:
$db = ModelName::firstOrCreate(['bot_id'=>10, 'bot_text'=>$botTxt->id])
->where('updated_at','<=', Carbon::today());
这无法正常工作。
正确的语法是:
ModelName::where('updated_at','<=', Carbon::today())
->firstOrCreate(['bot_id' => 10, 'bot_text' => $botTxt->id]);
此外,由于 firstOrCreate()
使用批量分配功能,请确保您已在 ModelName
class 中定义 $fillable
属性:
protected $fillable = ['bot_id', 'bot_text'];
您也可以像这样在 firstOrCreate 方法的第一个参数中传递条件:
$db = ModelName::firstOrCreate([
['updated_at','<=', Carbon::today()],
'bot_id'=>10,
'bot_text'=>$botTxt->id
]);