我正在考虑在我的一个模型上使用访问器来“美化”一个名字。是否可以使用访问器返回字段的漂亮和原始版本?如果访问者不适合这样做,怎么可能这样做。
代码:
型号:
class Application extends \Eloquent {
protected $guarded = array();
protected $table = 'apps';
public function getNameAttribute($value) {
//some code to prettify
}
}
目前我得到了这个结果:
{
"id": 1,
"name": "myapp",
}
我想得到如下结果:
{
"id": 1,
"name": "myapp",
"prettyname": "MyApp"
}
我不是在询问如何大写这些字母(我知道怎么做),我问的是如何返回一个包含漂亮名字的新字段。
答案 0 :(得分:1)
class Application extends \Eloquent {
protected $appends = ['prettyname'];
public function getPrettynameAttribute()
{
$name = $this->attributes['name'];
// some code to prettify $name
return $name;
}
}
答案 1 :(得分:0)
另一个更简洁的方法是使用Presenter。 您的模型不应该真正了解如何向用户显示名称。除了查看控制器或查看代码之外,您的模型似乎还有一个可设置的字段prettyName,它存储在DB ...
您可以将此功能提取给演示者Laracasts/Presenter
在您的视图中将如下所示
$myApp->present()->name();