Php DB Laravel在同一时间获得第一名
我只想显示来自“links,tags,pages”和“->first()”的一个结果,但是,我想显示来自“comments”和“->get()”的多个结果,将其分隔在一个数组中,然后发送到视图,我如何才能做到这一点Php DB Laravel在同一时间获得第一名,php,laravel,laravel-5,Php,Laravel,Laravel 5,我只想显示来自“links,tags,pages”和“->first()”的一个结果,但是,我想显示来自“comments”和“->get()”的多个结果,将其分隔在一个数组中,然后发送到视图,我如何才能做到这一点 $link = DB::table('links') ->join('tags', 'tags.id', 'links.tag') ->join('pages', 'pages.id', '=', 'links.pa
$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($link)
你可以用雄辩的语言。定义关系:
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()
充分利用雄辩的人际关系。@Valtersousasacardoso这一切都已经在这些人际关系中了。如果遵循,则不需要在关系中定义外键。你也可以找到一些例子。非常感谢你,非常简单,我怎样才能得到评论的作者?“COMMENTS.user\u id=USERS.id”。我如何选择要获取的字段?@ValterSousaCardoso在
Comment
中定义一个名为user
的关系,然后使用Link::with('page','tag','COMMENTS.user')->其中…
要选择字段,请使用->select()
或addSelect()
中的
Link::with('page', 'tag', 'comments')->where('friendly_url', $id)->first()