在$options数组中,您可以禁用该特定查询的时间戳:
$item->save([
'timestamps' => false, // Disable timestamping on insert and update.
'touch' => false, // Disable parent timestamping.
]);
Run Code Online (Sandbox Code Playgroud)
请参阅: 雄辩的模型约定:时间戳和触摸父时间戳.
注意:自5.3以来,timestamps不再支持该选项.
如果你看一下你可以看到的源代码,那么在该save()方法中,$options变量将传递给三个函数:
timestamps支持由performInsert()和提供performUpdate().touch提供支持finishSave().timestamps选项双方performInsert()并performUpdate()会检查timestamps的重点$options在阵列一起选择与$timestamps模型的属性:
if ($this->timestamps && Arr::get($options, 'timestamps', true))
Run Code Online (Sandbox Code Playgroud)
如果此表达式为true,则它将触及时间戳.
由于$option['timestamps']默认为true并且与模型属性一起使用,因此该选项的唯一用途(当它产生差异时)是在模型中启用时间戳,但是您想要在特定查询上禁用它.你不能做相反的事情:在模型中禁用时间戳时启用时间戳 - 这可能是违反直觉的.
注:由于5.3的
performInsert()和performUpdate()功能不会在价值观工作$options参数.
touch选项如果此选项设置为false,则将禁用触摸模型$touches属性中设置的父关系.此选项默认为true,因此就像timestamps选项一样,它仅用于禁用该特定查询的时间戳.