检索属于laravel类别列表的帖子

时间:2016-02-16 19:20:47

标签: laravel eloquent

我需要您的帮助才能找到创建此查询的解决方案。想象一下,我有2个表:帖子和类别,以及数据透视表:category_post。

帖子:id,title,...

类别:id,category_name,...

category_post:post_id,category_id

现在,我要检索我想要的类别:

$categories = Category::whereIn('id', $array)->lists('id');

在此查询之后,我有一个类别ID列表,我想只检索属于这些类别的帖子。不仅是属于一个类别的帖子,还有属于所有这些类别的帖子。

我希望我能很好地解释自己。 此致

1 个答案:

答案 0 :(得分:3)

您可以为枢轴类注册belongTo关系。 (提供category_idpost_id是外键。)

class CategoryPost extends Eloquent {

    protected $table = 'category_post';

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

    public function categories() {
        return $this->belongsTo('categories');
    }
}

现在,您可以致电

CategoryPost::with('posts')->whereIn('category_id', $categories)->groupBy('post_id')->get();