我有一些数组形式的预定义数据,我想访问我的视图。 我为此目的使用以下方法。 我在模型中定义了一个方法,它返回一个数组。
//function in my model calss of cars.
public function colors(){
return ['white', 'blue','gray'];
}
当我这样称呼这个方法时:
$cars->colors();
这是我想在我的视图文件中使用的代码
@foreach($car->colors() as $color)
<p> {!!$color!!}</p>
@endforeach
它显示以下错误:关系方法必须返回
类型的对象如果我想要一个数组或来自我的模型对象或替代方式的数据,那么处理这种情况的正确方法是什么。
答案 0 :(得分:1)
您可以使用Eloquent的访问者向您的模型添加自定义属性 - 请在此处查看更多详细信息:https://laravel.com/docs/5.3/eloquent-mutators#defining-an-accessor
在您的情况下,以下应该可以解决问题:
class Car extends Model {
public function getColorsAttribute(){
return ['white', 'blue','gray'];
}
}
现在您应该可以使用以下方法访问颜色列表:
foreach ($car->colors as $color) {
...
}
您收到的错误似乎与其他内容有关 - 通常这意味着您正在尝试热切地加载不存在的关系。确保您的汽车型号上没有with('colors')
的任何电话。