Imagine there is a Table with some posts which hasMany(tags), which in reverse belongsTo(posts). The tags-Table contains
id, post_id, tag
1, 42, Foo
2, 42, Bar
3, 53, Bar
4, 53, Baz
5, 64, Bar
Then there is an array
$array = ['Bar','Baz','Qux']
How do I get the posts, for which all tags are in $array?
In this example, the result should contain the posts [53,64], but not 42, because Foo is not in $array.
In other words: how do I make a logical AND through Eloquent? A logical OR is no problem, e.g.:
Posts::with('tags')
->whereHas('tags', function($q) {
$q->whereIn('tag', $array);
})
->get();
But this also returns post 42, as it has the tag Bar.
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire