Laravel 更新其他属性时自动更新属性

Laravel 更新其他属性时自动更新属性,laravel,Laravel,我有一个模型Bucket,它有两个属性:name和slug name可以是任何字符串,slug是name的url友好版本。用户可以更新bucket名称,但应根据名称自动生成slug。这是我的控制器代码 $bucket = Auth::user()->buckets()->find($id); if(!$bucket) return App::abort(404,'Bucket not found'); $bucket->fill(Input::all()); $bucket-

我有一个模型
Bucket
,它有两个属性:
name
slug

name
可以是任何字符串,
slug
name
的url友好版本。用户可以更新bucket
名称
,但应根据名称自动生成
slug
。这是我的控制器代码

$bucket = Auth::user()->buckets()->find($id);
if(!$bucket) return App::abort(404,'Bucket not found');

$bucket->fill(Input::all());
$bucket->save();
return $bucket;

对于给定的代码,
name
会更新,但
slug
不会更新。我如何告诉
Bucket
name
发生更改时自动更新
slug

您可以在模型事件中尝试此操作:


太棒了,我不知道这些。谢谢
Bucket::updated(function($bucket){
    $bucket->slug = $bucket->slug;
    return true;
});