[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Релятивный фильтр
Igon
Добрый день, пишу для сайта умный фильтр по аналогии Яндекс.Маркета.
Собственно уже который день озадачился вопросом реализация релятивного фильтра.
Что имеем:
Динамическую форму: (Форма генерируется автоматически, но для наглядности вставил HTML)
<form method="get" action="">
<div>
<label>
Asus</label>
<input
type="checkbox" name="filter[]" value="Asus">
<label>
Acer</label>
<input
type="checkbox" name="filter[]" value="Acer">
<label>
Lenovo</label>
<input
type="checkbox" name="filter[]" value="Lenovo">
</div>
<div>
<label>
2015</label>
<input
type="checkbox" name="filter[]" value="2015">
<label>
2014</label>
<input
type="checkbox" name="filter[]" value="2014">
<label>
2013</label>
<input
type="checkbox" name="filter[]" value="2013">
</div>
<button>
Искать</button>
</form>

После сабмита формы имеется url следующего вида:
site.com?filter=Asus&filter=2015

Так же имеем таблицы в базе данных:
products (id, title)
products_to_filter (id, product_id, filter_id)

Сам обработчик выглядит следующим образом (P.S фреймворк Laravel)

Выборка соответствующих фильтров.
$filter[] = explode(',', $request->input('filter');
$filters = DB::table('products_to_filter')->whereIn('id', $filter)
->get()
->all();
foreach($filters as $row) {$filterArray[] = $row->product_id;}
Выборка продуктов:
$products = DB::table('products')->whereIn('id', $filterArray)->get()->all();

Собственно моя проблема заключается в следующем, фильтр работает, но не совсем так как мне нужно, тобишь при фильтрации, он должен результаты уменьшать, а он же наоборот ищет более углубленно, и как следствие увеличивает кол-во результатов. Как решить данную проблему?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.