帖子:id,标题,...
类别:id,category_name,...
category_post:post_id,category_id
类别:
Categogy 1
Category 2
帖子:
Post 1
Post 2
category_post:
post_id | category_id
Post 1 | Category 1
Post 2 | Category 1
Post 1 | Category 2
现在。我想要同时具有类别1和类别2的过滤器帖子。
结果:发布1。
答案 0 :(得分:0)
$recruitmentId = [3,4,5];
$model = Recruitment::with('categories')
->selectRaw("recruitments.id, recruitments.title, category_recruitment.recruitment_id")
->join('category_recruitment',function($join){
$join->on("category_recruitment.recruitment_id","=","recruitments.id");
})
->get()
->toArray();
$collection = collect($model);
$data = $collection->filter(function ($item, $key) use ($recruitmentId){
if (!empty($item['categories']) && count($item['categories']) >= count($recruitmentId)) {
$query = null;
foreach ($item['categories'] as $k => $v) {
foreach ($recruitmentId as $key => $value) {
$query .= $v['category_id'] == $value;
}
}
return $query;
}
})
->unique('title')
->values()
->all();
dd($data);
答案 1 :(得分:0)
这是多对多的关系 你可以$ this-> belongsTomany方法还是append方法用作laravel中的过滤器。 laravel many to many