我试图通过laravel关系获取链接的评论,链接的评论正常返回,但我不知道如何在视图中获取它或dd(),我该怎么办?它?
控制器:
$page = Page::where('friendly_url', $id)
->select('id', 'photo', 'friendly_url', 'name', 'description', 'followers', 'links', 'tag_id', 'links_clicks')
->with('ptag', 'links', 'links.comments', 'links.tag')
->with(['links.comments.user' => function($query) {
$query->select('id', 'name', 'lastname');
}])->with(['links.comments.userProfile' => function($query) {
$query->select('id', 'photo');
}])->first();
DD($ PAGE-> getRelation('链接&#39)
Collection {#301 ▼
#items: array:2 [▼
0 => Link {#307 ▼
#relations: array:2 [▼
"comments" => Collection {#316 ▼
#items: array:1 [▶]
"tag" => Tag {#322 ▶}
]
DD($ PAGE-> getRelation('链接') - > getRelation('注释'))
BadMethodCallException
Method getRelation does not exist.
DD($ PAGE-> getRelation('链接') - >评论)
Exception
Property [comments] does not exist on this collection instance.
编辑:
我想显示comment和comment.user的属性,我该怎么做?
foreach($page->getRelation('links')->pluck('comments') as $comment) {
dd($comment);
}
Collection {#327 ▼
#items: array:1 [▼
0 => Comment {#325 ▼
#attributes: array:5 [▼
"id" => 3
"content" => "teste"
"link_id" => 1
"user_id" => 1
"created_at" => "2018-01-11 00:47:32"
]
#relations: array:2 [▼
"user" => User {#330 ▼
#attributes: array:3 [▼
"id" => 1
"name" => "Halysson"
"lastname" => "Teves dos Santos"
]
}
"userProfile" => UserProfile {#326 ▶}
]
答案 0 :(得分:0)
试试这个 -
{{1}}
答案 1 :(得分:0)
例如:您已经定义了用户与电话的关系,因为用户拥有电话,一对一的关系。在用户模型中定义类似
的关系public function phone()
{
return $this->hasOne('App\Phone');
}
现在在用户模型实例上调用此关系。
$user = User::find(1);
dd($user->phone);
答案 2 :(得分:0)
因为您正在使用select()
方法,所以还需要在其中包含所有外键,以允许Eloquent加载这些关系。
但是,由于您刚开始使用Laravel,我建议您从这个复杂的查询中删除select()
方法。
答案 3 :(得分:0)
如果您想要一个页面的链接:
read table <ft_itab> from <fs_itab> ....
如果你想要一个页面的所有评论:
$page->links
就是这样:))