我的模型Bucket
有两个属性:name
和slug
。
name
可以是任意字符串,slug
是name
的网址友好版本。用户可以更新存储区name
,但应根据名称自动生成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
更改,我如何告诉slug
自动更新name
?
答案 0 :(得分:1)
您可以使用模型事件尝试: http://laravel.com/docs/4.2/eloquent#model-events
Bucket::updated(function($bucket){
$bucket->slug = $bucket->slug;
return true;
});