我需要得到的职位,职位有标签1和标签2(或更多)我试过这个:
$posts = Post::whereHas('tags', function(Builder $query) { foreach (request('tags') as $tag) { // request('tags') = integer array $query->where('id', $tag); } })->get();
但它不起作用。
atmip9wb1#
如果你真的想得到post where has tag1ANDtag2你可以用下面的代码
$posts = Post::query(); foreach (request('tags') as $tag) { // request('tags') = integer array $posts = $posts->whereHas('tags', function(Builder $query) use ($tag) { $query->where('id', $tag); }); } $posts = $posts->get();
但如果你的意思是想得到的职位,其中有标签1或标签2。您可以使用whereIn方法:
whereIn
$posts = Post::whereHas('tags', function(Builder $query) { $query->whereIn('id', request('tags')); })->get();
或替代使用orWhere
orWhere
$posts = Post::whereHas('tags', function(Builder $query) { foreach (request('tags') as $tag) { // request('tags') = integer array $query->orWhere('id', $tag); } })->get();
1条答案
按热度按时间atmip9wb1#
如果你真的想得到post where has tag1ANDtag2你可以用下面的代码
但如果你的意思是想得到的职位,其中有标签1或标签2。
您可以使用
whereIn
方法:或替代使用
orWhere