Laravel Eloquent Model->isDirty() Function
1 引言 introduction
有时,我们需要在 Model 某些属性发生变化时,作出相应的处理。
这时,我们可以使用 Model->isDirty() 方法进行判断。
2 场景
比如,姓名字段发生改变,引发拼音码生成;
单价调整,引起金额计算。
试题得分改变,导致试卷分值重算,等等。
3 示例
App\Observers\UserObserver
function saving(User $user)
{
if ($user->isDirty(‘name’))
$user->pinyin = pinyin_abbr($user->name);
}
4 小结
isDirty(array|string|null)
array: 数组中列出的字段是否被污染
string: 指定的属性是否污染
null: 任何属性被污染
利用此方法,结合 Eloquent Observer 模式,可以优雅地,处理一些联动事务。