Как сделать фильтр товаров для интернет магазина на laravel?

734
29 июля 2017, 06:32

Подскажите, как сделать правильный фильтр товаров? Сейчас делаю так:

$select_parts = Product::select('product_manufacturer.title as manufacturer', 'product.*')->join('product_manufacturer', 'product_manufacturer.id', '=', 'product.manufacturer_id')->join('product_attribute', 'product_attribute.product_id', '=', 'product.id')->where('product.status', 1)
        ->where(function($query) use ($catalog) {
            return $query->where('product.category_id', $catalog->id)->orWhereIn('product.category_id', Catalog::where('product_category.parent_id', $catalog->id)->pluck('product_category.id'))
        })->where(function($query) use ($ar_select_properties) {
            if (isset($ar_select_properties)) {
                $query->whereIn('product_attribute.attribute_id', $ar_select_properties);
            }
        })->get();

Массив $ar_select_properties содержит id атрибутов, по которым идёт поиск.

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

READ ALSO
регулярные выражения php

регулярные выражения php

Имеется регулярное выражение:

258
Два задания с указателями на C++

Два задания с указателями на C++

Посмотрите пожалуйста правильно ли я делаю?

301
Что быстрее: обход вектора или обход списка?

Что быстрее: обход вектора или обход списка?

На собеседовании спросили: что быстрее, обход вектора или обход списка с выводом значений в консоль? Каким образом обходим, не уточнилиЯ ответил,...

327