【发布时间】:2014-10-05 09:37:26
【问题描述】:
总的来说,我对 Laravel 和 php 框架非常陌生,如果我错过了任何基本的东西,非常抱歉。我在我的应用程序中创建了一个名为Journey 的新模型,它扩展了标准Eloquent 模型。我注意到的是,我在两个不同的控制器中使用了我的 Journey 模型,因此我复制了一些代码。
基本上,我正在做的是获取 Journey 的标题,并使用自定义类对其进行格式化以清理标题(转换为小写、添加连字符、删除空格等),这样我就可以将其附加到我的页面 URL。
在一个控制器中,我正在调用:
$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 文件,但它们让我感到困惑。
我该怎么做呢?
【问题讨论】:
标签: php activerecord laravel laravel-4 eloquent