Laravel 4:如何使Eloquent模型中的列独特

时间:2013-02-14 10:49:17

标签: orm laravel laravel-4

我有一个Eloquent模型Article,其中有一列title_url,它应该是唯一的,因此可能不存在两个article具有相同title_url的{​​{1}}。如果已经存在两个这样的article,我不想返回错误,我只想默默地更改一个title_url。因此super-article代替title_url而不是super-article-2

我怎样才能在Laravel 4中这样做?也许使用mutators?如果是的话,最好的方法是什么?

请记住,我希望title_url的转变无声地发生,并且每次必要时(更新,插入)。

1 个答案:

答案 0 :(得分:1)

In the lastest Beta 4 build of Laravel 4,现在可以选择挂钩创建和更新事件:

  

添加了Model :: creating(Closure)和Model :: updates(Closure)方法,用于挂钩到Eloquent保存事件。感谢Phil Sturgeon最后向我施压......:)

所以这似乎是你想要的最佳选择。只需在模型的create()中创建一个钩子,然后创建一个简单的函数来检查您要插入的title_url,如果它存在,则将其更改为其他内容,然后插入。 / p>