首页 > 解决方案 > 如何在 eloquent 中使用数据透视表获取类别-> 名称

问题描述

我有四个模型post postcomment postcategorycategory我想获取所有带有评论和类别的帖子。postcategory 表有 post_id 和 category_id 而 category 表有 id 和 category_name 字段

我可以用我的查询记录如下

Array
(
[0] => Array
    (
        [id] => 1
        [post_title] => My First Post
        [postcategory] => Array
            (
                [0] => Array
                    (
                        [post_id] => 1
                        [category_id] => 1
                    )
            )

        [postcomment] => Array
            (
                [0] => Array
                    (
                        [id] => 1
                        [post_id] => 1
                        [postcomment] => first comment of first post
                    )
            )
      )
)

如您在结果数组中所见,我可以从 postcategory 模型中获取 category_id,在这种情况下我如何拥有 category_name

楷模

后模型

public function postcategory()
{
    return $this->hasMany(postcategory::class);
}


public function postcomment()
{
    return $this->hasMany(postcomment::class);
}

后分类模型

public function post()
{        
    return $this->belongsTo(post::class);
}

评论后模型

public function post()
{        
    return $this->belongsTo(post::class);
}

类别 型号

public function post()
{        
    return $this->belongsTo(post::class);
}

询问

$posts = post::with(['postcategory', 'postcomment','category'])->get();

标签: eloquenteloquent-relationship

解决方案


推荐阅读