在Eloquent
模型中,相应的表格有一个数字列status
,我必须用字符串替换数值。
目前我使用一种方法。该方法从预定义的数组返回相应的text
。
有没有办法用构造函数或其他地方的文本替换数值,这样我每次都不需要调用方法?
这可能会有所帮助:这是一个laravel项目。
答案 0 :(得分:0)
我猜Laravel Mutators将达到最佳目的,因为它们在您实例化模型对象时调用
例如:
假设您有一个属性为的Post Table [id,name,description,author_id和status]
假设您要显示"有效"状态1的文字和"无效"状态2 所以,你可以:
1)在模型上创建一个状态关联数组
$statuses = [1=>'active',2=>'inactive'];
2)使用mutator回复:
public function getStatusAttribute($value){
return $this->statuses[$value];
}
3)测试尝试:
Posts::find(1)->toArray();
应输出更新的所有状态。如1显示为活动,2显示为非活动。