加入laravel 5.5
Join in laravel 5.5
我正在尝试查询 laravel 中某条新闻的连续评论数。
News Table
News_Comments Table
Display count of comments in 'Kommentare'
这是 mysql 中的查询。
SELECT news.Id,news.title,news.body,news.created_at, COUNT(news_comments.id) AS Kommentare
FROM news
LEFT JOIN news_comments ON news_comments.fk_news_id = news.id
GROUP BY news.id
Result of this query
laravel 5.5 怎么写?
非常感谢!
为新闻 table 姓名 News
创建模型,为评论 table 姓名 Comment
创建另一个模型。然后在您的新闻模型中,定义一个 hasMany()
关系方法,例如 -
public function comments(){
return $this->hasMany(Comment::class);
}
然后在你的控制器中,像这样检索-
$newses = News::with('comments')->get();
这将加载 all
条带有 corresponding
条评论的新闻。如果你想加载 single
条带有 all
条评论的新闻,那么 -
$news = News::with('comments')->where('id',$news_id)->first();
要获得评论 count
,您可以 count()
像 -
这样的关系
$count = News::find($news_id)->comments()->count();
您必须设置News 和NewsComments 之间的关系。
在新闻模型中,假设 news_comments
在 NewsComment
模型中,在 App 文件夹中。设置关系:
public function newsComments()
{
return $this->hasMany('App\NewsComment', 'fk_news_id');
}
然后,要获得计数,您可以使用 count()
方法:
$count = $news->newsComments()->count();
或者,直接使用blade:
{{ $news->newsComments()->count() }}
我正在尝试查询 laravel 中某条新闻的连续评论数。
News Table
News_Comments Table
Display count of comments in 'Kommentare'
这是 mysql 中的查询。
SELECT news.Id,news.title,news.body,news.created_at, COUNT(news_comments.id) AS Kommentare
FROM news
LEFT JOIN news_comments ON news_comments.fk_news_id = news.id
GROUP BY news.id
Result of this query
laravel 5.5 怎么写?
非常感谢!
为新闻 table 姓名 News
创建模型,为评论 table 姓名 Comment
创建另一个模型。然后在您的新闻模型中,定义一个 hasMany()
关系方法,例如 -
public function comments(){
return $this->hasMany(Comment::class);
}
然后在你的控制器中,像这样检索-
$newses = News::with('comments')->get();
这将加载 all
条带有 corresponding
条评论的新闻。如果你想加载 single
条带有 all
条评论的新闻,那么 -
$news = News::with('comments')->where('id',$news_id)->first();
要获得评论 count
,您可以 count()
像 -
$count = News::find($news_id)->comments()->count();
您必须设置News 和NewsComments 之间的关系。
在新闻模型中,假设 news_comments
在 NewsComment
模型中,在 App 文件夹中。设置关系:
public function newsComments()
{
return $this->hasMany('App\NewsComment', 'fk_news_id');
}
然后,要获得计数,您可以使用 count()
方法:
$count = $news->newsComments()->count();
或者,直接使用blade:
{{ $news->newsComments()->count() }}