雄辩的模型 - 取代财产价值

时间:2017-12-30 05:25:25

标签: laravel laravel-eloquent

Eloquent模型中,相应的表格有一个数字列status,我必须用字符串替换数值。 目前我使用一种方法。该方法从预定义的数组返回相应的text

有没有办法用构造函数或其他地方的文本替换数值,这样我每次都不需要调用方法?

这可能会有所帮助:这是一个laravel项目。

1 个答案:

答案 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显示为非活动。