用户模型中的一对多关系声明代码..
public function post()
{
$this->hasMany('App\Post', 'userid','id');// id--from user
}
Post模型中我的一对多关系声明代码..
public function comment()
{
$this->hasMany('App\Comment', 'postid','pid');// id--from post
}
现在我想检索用户的所有评论但是如何?
答案 0 :(得分:2)
尝试用户模型
public function comments()
{
return $this->hasManyThrough(
'App\Comment', 'App\Post',
'userid', 'postid', 'id'
);
}
https://laravel.com/docs/5.4/eloquent-relationships#has-many-through
答案 1 :(得分:0)
评论与那里的用户无关,您可以查询的是“用户帖子中的所有评论”
答案 2 :(得分:0)
我想你应该改变你的模型方法并将其复数化:
用户模型:
public function posts()
{
$this->hasMany('App\Post', 'userid','id');// id--from user
}
发布模型:
public function comments()
{
$this->hasMany('App\Comment', 'postid','pid');// id--from post
}
在此之后,您可以在控制器中执行此操作来计算用户的评论:
$user->posts->comments->count();