返回所有用户的每个用户的帖子和每个帖子的评论laravel

时间:2016-11-19 18:07:00

标签: javascript php ajax laravel eloquent

我正在使用laravel eloquent,我制作了模型(用户,帖子,评论)

关系是

用户模型

public function posts(){
    return $this->hasMany('App\Post');
}

public function comments(){
    return $this->hasMany('App\Comment');
}

发布模型

public function comments()
{
    return $this->hasMany('App\Comment');
}
public function user()
{
    return $this->belongsTo('App\User');
}

评论模型

public function post()
{
    return $this->belongsTo('App\Post');
}

我想返回所有用户,每个用户都有自己帖子的对象,每个帖子都有一个所有评论的对象

我有这个查询

$users = \App\User::with('posts')->\get();
return $users;

它返回用户的对象,每个用户都有自己帖子的对象,但没有评论对象

现在问题是

在PHP中

,例如我可以return user[0]->posts[0]->coments() 并返回评论

但我无法在javascript或手机中看到此评论作为API 它返回“尝试获取非对象的属性”

所以.. 我想使用js或API中的注释

我可以使用for循环获取评论,但我正在寻找更好的解决方案

1 个答案:

答案 0 :(得分:1)

你可以这样做:

$users = \App\User::with('posts', 'posts.comments')->get();
return $users;

希望这有帮助!