У меня есть модель объявлений Ad
, модель тегов Tag
и реализованная связь 'многие ко многим' между ними.
Я хочу на основе запроса пользователя выдать ему все объявления, где есть выбранные им теги.
Вот мой запрос на основе Eloquent, где я хочу получить объявления, к которым привязан тег с id = 7:
$allAd = Ad::with(['tags' => function ($query) {
$query->where('id', 7);
}])->get();
Делая такой запрос я получаю абсолютно все объявления, как если бы запросил Ad::all();
, включая те, где ни одного тега нет.
Что я делаю не так и как правильно составить запрос, который бы выдал только объявления с выбранными тегами?
Буду благодарен за любую помощь.
Нашел ответ на англоязычном stackoverflow. Необходимо применять методы whereHas
и whereIn
, а $tagsId
должен быть массивом значений.
$allAds = Ad::whereHas('tags', function($query) use($tagsId) {
$query->whereIn('id', $tagsId);
})->get();
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как мне округлить число 0,005603 до 3-х знаков после точки к наименьшему, чтобы было значение стало 0005?
Есть сайт на битриксеМне необходимо выводить определенную надпись на некоторых страницах (их больше, чем в приведенном примере кода)