如果使用withoutEvents
和saveQuietly
保存模型有区别,我很感兴趣。下面两段代码的主要区别是什么:
$user = User::withoutEvents(function () use () {
$user = User::findOrFail(1);
$user->name = 'Victoria Faith';
$user->save();
return $user;
});
和:
$user = User::findOrFail(1);
$user->name = 'Victoria Faith';
$user->saveQuietly();
SaveQuietly
是闭包WithoutEvents
的包装器,它接受选项:
trait SaveQuietly
{
/**
* Save model without triggering observers on model
*/
public function saveQuietly(array $options = [])
{
return static::withoutEvents(function () use ($options) {
return $this->save($options);
});
}
}