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

755
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

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

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

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

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

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

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

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

348