我只想显示来自"链接,标签,网页"," - > first()"的一个结果,但是,我想显示来自&#的多个结果34;评论"," - > get()",将它分成一个数组,然后发送到视图,我该怎么做?
$link = DB::table('links')
->join('tags', 'tags.id', 'links.tag')
->join('pages', 'pages.id', '=', 'links.page_id')
->leftJoin('comments', 'comments.link_id', '=', 'links.id')
->select('links.photo', 'links.id', 'links.description', 'links.country', 'links.url', 'links.suggestions', 'links.shares', 'links.friendly_url', 'links.page_id', 'links.sponsored', 'links.clicks', 'links.title', 'tags.color', 'tags.id as tag_id', 'tags.name', 'pages.name as p_name', 'pages.description as p_description', 'pages.id as p_id', 'pages.followers', 'pages.links', 'pages.friendly_url as p_friendly_url', 'pages.photo as p_photo')
->where('links.friendly_url', $id)
->first();
return view('site.link', compact('link'));
DD($链路);
0 => Link {#291 ▼
#relations: array:3 [▼
"page" => Page {#295 ▶}
"tag" => Tag {#289 ▶}
"comments" => Collection {#292 ▼
#items: array:2 [▼
0 => Comment {#299 ▶}
1 => Comment {#301 ▶}
]
}
]
答案 0 :(得分:3)
你可以使用Eloquent。定义关系:
public function page()
{
return $this->belongsTo(Page::class);
}
public function tag()
{
return $this->belongsTo(Tag::class, 'tag');
}
public function comments()
{
return $this->hasMany(Comment::class);
}
这样做:
Link::with('page', 'tag', 'comments')->where('friendly_url', $id)->first()