我有一个产品模型和一个属性模型.产品和属性之间的关系是多对多的.在我的产品型号上,我正在尝试创建一个动态访问器.我熟悉Laravel的访问器和mutators功能,如
here所述.我遇到的问题是每次创建产品属性时我都不想创建访问器.
例如,产品可能具有颜色属性,可以这样设置:
/**
* Get the product's color.
*
* @param string $value
* @return string
*/
public function getColorAttribute($value)
{
foreach ($this->productAttributes as $attribute) {
if ($attribute->code === 'color') {
return $attribute->pivot->value;
}
}
return null;
}
然后可以像访问$product->颜色一样访问产品的颜色.
如果我在产品中添加尺寸属性,我需要在产品型号上设置另一个访问者,这样我就可以像访问$product->尺寸一样访问它.
有没有办法设置一个“动态”访问器来处理作为属性访问时的所有属性?
我是否需要使用自己的覆盖Laravel的访问器功能?