我可能过于复杂或者遗漏了一些非常简单的事情,所以请原谅我。
我正试图在我的模型中操纵/映射一些数据。
我想要做的一个非常简单的例子:
我有$model->attr
,这将返回我的数据库中该列的所有内容。
我知道返回的格式为1
,2
或3
。
在视图上显示时,我希望此值显示不同的内容,为了这个示例,我们可以说1=>'red'
,2=>'blue'
,3=>'green'
。
我将如何在模型中执行此操作?我看过Accessors&变异者但不确定它们是否正确使用。
提前致谢。
答案 0 :(得分:3)
确实需要accessor:
public function getNewValueAttribute($value){
switch($value) {
case '1':
return 'red';
case '2':
return 'blue';
case '3':
return 'green';
}
}
把它放在模型中,它应该可以正常工作!
Laravel将该属性转换为CamelCase,因此$user->full_name
有一个访问者getFullNameAttribute
,$user->all_your_base_are_belong_to_us
变为getAllYourBaseAreBelongToUsAttribute
。
答案 1 :(得分:0)
我认为您正在尝试根据条件输出文本。如果是,你可以尝试
@if($model->attr==1)
red
@elseif($model->attr==2)
blue
@else
green
@endif