2013-02-14 64 views
1

我有一個Eloquent模型Article,它有一列title_url,它應該是唯一的,因此可能不存在兩個articletitle_url。如果兩個這樣的article已經存在,我不想返回一個錯誤,我只想靜靜地改變一個人的title_url。因此,而不是super-article,它的title_url將是super-article-2Laravel 4:如何在Eloquent模型中創建一列獨特

我怎麼能在Laravel 4中做到這一點?也許使用mutators?如果是,那麼最好的方法是什麼?

請記住,我希望title_url的轉換悄然發生,並且每次都有必要(更新,插入)。

回答

1

In the lastest Beta 4 build of Laravel 4,現在有一個選項掛接到創建和更新事件:

新增型號::創建(封閉)和型號::更新(關閉)用於掛接到雄辯節省事件的方法。感謝Phil Sturgeon終於迫使我做這件事...... :)

所以這似乎是你想要的完美契合。只需在模型的create()中創建一個鉤子,然後創建一個簡單函數來檢查您即將插入的title_url,如果存在,請將其更改爲其他內容,然後插入。