Надежда кто-нибудь может мне помочь, мне нужно искать элементы, которые имеют идентификатор категории = х в базе данныхLaravel 5 красноречив, где
Пример табличные элементы идентификатор, кошки, имя и т.д. ... кошки = «1 , 19' или, возможно, просто „19“ или может быть „1,9“
Так для этого примера мне нужна для поиска элементов, которые имеют кошка с 9
Я попытался это, но когда я ищу 9 это также показаны 19
$items = Items::where(function($query)use($cat) {
$query->where('cats', 'like', '%,'.$cat->id.'%');
$query->orWhere('cats', 'like', '%'.$cat->id.',%');
$query->orWhere('cats', 'like', '%'.$cat->id.'%');
})->orderBy('updated_at', 'DSC')->get();
я пытался что-то
$items = Items::whereIn(explode(',', 'cats'), $cat->id)->get();
, но он не работает
Цените любую помощь, чтобы найти самый простой и шорты способ сделать это, считает
Хранение данных с разделителями и запросов в них вызовет много проблем, и это противоречит нормализации. Для этого вы должны создать сводную таблицу. А также вам не понадобится «% $ cat-> id%» при запросе на 9, потому что он всегда будет иметь запятую до или после, поэтому, если вы удалите первое предложение where, оно должно быть в порядке – engvrdr
Привет, engvrd, я попытался удалить первый запрос, но он все еще показывает 19 в результате примечание: если кошки просто «19», у поля не будет запятой – user3466947