我對Laravel和PHP框架非常陌生,所以很抱歉如果我錯過任何基本的東西。我在我的應用程序中創建了一個名爲Journey
的新模型,該模型擴展了標準Eloquent
模型。我注意到,我在兩個不同的控制器中使用我的Journey模型,並且因爲它而複製了一些代碼。如何將自定義字段添加到Laravel的模型中?
本質上,我正在做的是我採取了旅程的標題,我正在用一個自定義類來格式化它以清除標題(轉換爲小寫字母,添加連字符,刪除空格等),所以我可以附加到我的網頁網址。
在一個控制器,我打電話:
$journey = Journey::find($id);
$journey->cleanURL = Url::clean($journey['name']); // This creates a new element/property with a clean string
而在另一方面,我打電話:
$journeys = Journey::all();
foreach ($journeys as $journey) {
$journey->cleanURL = URL::clean($journey['name']);
}
這是不恰當的固定字段添加到我的數據庫清理的URL,因爲我可以隨時更改標題(清理的URL所基於的),我希望URL在此事件中自動更新。然而,說這個,我通過兩次呼叫Url::clean
重複自己。
我想要做的是編寫一個方法或改變一個現有的方法,以便當我撥打Journey::all()
或Journey::find()
或任何基於查詢的方法時,URL字段已經存在並被填充。我試過了一些Vendor/Eloquent
文件,但他們只是讓我感到困惑。
我該怎麼做呢?
優秀。感謝您的示例和文檔鏈接。我沒有意識到訪問者是一件事。 – ReactingToAngularVues 2014-10-05 09:53:58