如何使用关系检索所有数据?

时间:2015-07-30 06:25:18

标签: php

我有三张桌子

users
posts
comments

我的问题是如何在单个查询中检索用户发布和发表评论。

提前谢谢

2 个答案:

答案 0 :(得分:4)

你的问题答案已由@ Nicklas Kevin Frank提出。

用于在Model.php第867行中获取跟随错误FatalErrorException:Class' Post'未找到错误,在您的模型类中修改您的hasmany:App \ User

<?php

class User extends Model
{

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

}
帖子模型中的

<?php

class Post extends Model
{

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

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


}

在评论模型中

<?php

class Comment extends Model
{

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

并在您的控制器中

$data = User::findOrFail(1)->posts()->get();

答案 1 :(得分:1)

您可以使用以下内容:

User::find($id)->with('posts','posts.comments')->get();

通过这种方式,您可以获得一位用户,以及他对帖子的帖子和评论。

要仅访问属于用户的帖子,您必须执行以下操作:

User::find($id)->with('posts')->get();