如何检索数据?

时间:2015-09-04 03:21:36

标签: php

发布模型

class Post extends Model
{


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

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

    public function tags()
    {
        return $this->belongsToMany('App\Tag');
    }

评论模型

class Comment extends Model
    {

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


   }  

标记模型

class Tag extends Model
    {
    public function posts()
    {
        return $this->belongsToMany('App\Tag');
    }

用户模型

class User extends Model
{


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

现在我的问题是我如何能够访问所有属于帖子的评论,用评论的用户名和标签属于该帖子。即使我对标签关系感到困惑,因为它有多对多的关系

谢谢

1 个答案:

答案 0 :(得分:1)

标记模型

class Tag extends Model
{
    public function posts()
    {
        return $this->belongsToMany('App\Tag');
         // Should this be return $this->belongsToMany('App\Post');
    }

现在您的问题的解决方案是“EAGER LOADING”,让我们看看我们如何在您的情况下使用它。

<强> 1。所有评论

$commentsCollection = Comment::all();
// this will give us all comments.

<强> 2。发布评论,用户和标签

$postsCollection = Post::with('comments','users','tags')->get();
// this will give you collection of post with comments, users and tags. 
//So here you have all tags that belongs the a particular post.

缺少关系

您缺少用户和评论之间的关系。

修改后的评论模型

class Comment extends Model
{

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

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

}

已修改的USER模型

class User extends Model
{


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

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