我有一个Eloquent模型Article
,其中有一列title_url
,它应该是唯一的,因此可能不存在两个article
具有相同title_url
的{{1}}。如果已经存在两个这样的article
,我不想返回错误,我只想默默地更改一个title_url
。因此super-article
代替title_url
而不是super-article-2
。
我怎样才能在Laravel 4中这样做?也许使用mutators?如果是的话,最好的方法是什么?
请记住,我希望title_url
的转变无声地发生,并且每次必要时(更新,插入)。
答案 0 :(得分:1)
In the lastest Beta 4 build of Laravel 4,现在可以选择挂钩创建和更新事件:
添加了Model :: creating(Closure)和Model :: updates(Closure)方法,用于挂钩到Eloquent保存事件。感谢Phil Sturgeon最后向我施压......:)
所以这似乎是你想要的最佳选择。只需在模型的create()
中创建一个钩子,然后创建一个简单的函数来检查您要插入的title_url
,如果它存在,则将其更改为其他内容,然后插入。 / p>