Имеется таблица:
filters_to_products
Структура:
id
category_id
product_id
filter_id
Имеется форма
<form method="get">
<input type="checkbox" value="1" name="array[]">
<input type="checkbox" value="2" name="array[]">
<input type="checkbox" value="3" name="array[]">
<input type="checkbox" value="4" name="array[]">
<button>Filter</button>
</form>
P.S инпуты динамические.
Имеется контроллер:
foreach($request->input('array') as $row) {
$ids = $row;
}
$items = Item::where('category_id', '1')->whereIn('id', $ids)->get()->all();
Беда в том, что фильтр должен отсеивать значения, к примеру если я выбрал чекбокс с value 1 и чекбокс с value 2 то мне должны вывестись только те item-ы которые есть в таблице по совпадению, а тут получается что у меня выборка происходит по тем которые имеют такой id, то есть грубо говоря позиции не фильтруются, а суммируются на основе фильтров.
Вам нужна функция where() ?
Items::where(cpu, 'i7')->where(diagonal, 13)->where(category, 'Notebook')->get();
UPD
Тогда так
$items = Item::where('category_id', '1')
foreach($request->input('array') as $row) {
$items->where('id', row)
}
$items->get();
Должно сработать на основе особенностей Eloquent-а, когда запрос не заканчивается, пока не выполнен get(). Ну или можно менее извращенно сделать через whereRaw, как больше нравится.
Проще всего, сразу сделать так:
$item = Item::where('category_id', '1')->whereIn('id', array_filter(request()->array))->get();
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники