我如何使用这样的代码:
$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()
使用批量分配功能,请确保您已在 $fillable
类中定义了 ModelName
属性:
protected $fillable = ['bot_id', 'bot_text'];
您还可以在firstOrCreate方法的第一个参数中传递条件,如下所示:
$db = ModelName::firstOrCreate([
['updated_at','<=', Carbon::today()],
'bot_id'=>10,
'bot_text'=>$botTxt->id
]);
$db = ModelName::firstOrCreate(
[
'updated_at' => Carbon::today()
],
[
'bot_id' => 10,
'bot_text' => $botTxt->id
]
);