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

740
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

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

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

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

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

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

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

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

338