Laravel保存模型而不触发事件



如果使用withoutEventssaveQuietly保存模型有区别,我很感兴趣。下面两段代码的主要区别是什么:

$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);
});
}
}

最新更新