Laravel:访问Object with Blade中的关系数据

时间:2014-07-17 20:30:47

标签: php laravel laravel-4 relationship blade

我正在我的控制器中创建以下视图:

$links = Link::with('cats')->get();

return View::make('home')
            ->with('links',$links);

这导致以下对象:

{"id":1,"user_id":1,"cat_id":3,"link":"http:\/\/www.google.de","active":0,"description":"","created_at":"2014-07-16 19:46:23","updated_at":"2014-07-16 19:46:23",
"cats":[
{"id":1,"cat_name":"Design","created_at":"2014-07-16 00:00:00","updated_at":"2014-07-16 00:00:00","pivot":{"link_id":1,"cat_id":1}}
]}, 

所以我的猫在链接对象中。但我无法访问它们。

我试过这个:

{{ $link->cats->cat_name }}

但是我收到了这个错误:

Undefined property: Illuminate\Database\Eloquent\Collection::$cat_name

我做错了什么?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

答案在错误消息中:您尝试获取集合$cat_name属性。

简而言之,问题是:$links->cats是猫模型的集合。您想获取cat模型的特定实例的名称,而不是集合 - 该集合没有名称。

使用以下内容:$links->cats[0]->cat_name或迭代集合并依次获取每个名称。