2015-09-21 5 views
1

Я пытаюсь выполнить поиск по a, относящийся ко многим отношениям.Laravel поиск нескольких значений на сводной таблице

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

Так что я пытаюсь выполнить поиск двух тегов, но я хочу, чтобы он возвращал ссылки, имеющие теги BOTH. До сих пор у меня есть это:

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

Это делает поиск отношения, и возвращает результат, но он соответствует любому из тегов, но не оба из них.

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

ответ

0

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

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

I Первоначально думал об этом, но он не работал. Я добавил foreach внутри функции whereHas, чтобы прокрутить поисковые запросы, но не получил результата. – Karl

Смежные вопросы