Laravel поиск нескольких значений в сводной таблице

Я пытаюсь сделать поиск принадлежащих ко многим отношениям.

У меня есть ссылки и теги ссылок, ссылка может иметь много тегов ссылок.

Поэтому я пытаюсь найти два тега, но я хочу, чтобы он только возвращал ссылки, имеющие ОБА теги. Пока у меня есть это:

        $links = Link::whereHas('linktags', function($q) use($query, $where) {
$q->whereIn('name', $query);
})->with('linktags')->get();

Это выполняет поиск взаимосвязи и возвращает результат, но он соответствует ЛЮБОМУ тегам, а не ОБА их.

Я посмотрел на документацию, но не могу найти способ сделать это. Есть идеи?

1

Решение

Я не совсем уверен, что вы помещаете в свой $ запрос и $ где переменная, но в соответствии с 4.2 документа Вы можете просто добавить простые «wheres» к своему закрытию, например так:

$links = Link::whereHas('linktags', function($q) use($query, $where, $tag1, $tag2) {
$q->where('name', $tag1);
$q->where('name', $tag2);
})->with('linktags')->get();
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]