修改Eloquent将JSON转换为属性
问题描述:
我的Eloquent模型有一个名为“group_answers”的属性/列,它是json表示的其他自定义问题和答案,如;修改Eloquent将JSON转换为属性
{
"satisfied_with_course":"3",
"satisfied_with_teacher":"5",
"satisfied_with_residence":"2",
}
是否有可能改变模型,使我有每个键的附加属性?那可以称为$model->satisfied_with_course
而不是$model->group_answers['satisfied_with_course']
?
答
我相信你可以使用Eloquent的Accessor和Mutator选项。所以对于Mutator,你的模型中会有这样的东西。
public function setSatisfiedWithCourceAttribute($value)
{
$this->attributes['group_answers']['satisfied_with_course'] = $value;
}
和你的访问者应该是这样的:
public function getSatisfiedWithCourceAttribute($value)
{
return $this->group_answers['satisfied_with_course'];
}
我会尽力建立起来的东西,所以我可以测试并确保它正常工作。
啊,所以我必须要知道什么问题是,以创建模型的赋值函数/存取方法?我想这其实很好。 – mikelovelyuk
您可以使用PHP魔法获取器和设置器选项,但不一定建议。 – Pitchinnate