diff --git a/models/ProductFrontendSearch.php b/models/ProductFrontendSearch.php index eb07ce4..d77832c 100755 --- a/models/ProductFrontendSearch.php +++ b/models/ProductFrontendSearch.php @@ -4,7 +4,6 @@ use artweb\artbox\ecommerce\helpers\FilterHelper; use artweb\artbox\ecommerce\models\Category; - use artweb\artbox\language\models\Language; use yii\base\Model; use yii\data\ActiveDataProvider; use yii\data\ArrayDataProvider; @@ -118,16 +117,22 @@ return $dataProvider; } - /** - * @param Category $category - * @param array $params - * @param bool $in_stock - * @return mixed - */ - public function getSearchQuery($category, $params = [], $in_stock = true) + public function getSearchQuery($category = null, $params = [], $in_stock = true) { - $query = $category->getProducts(); + if (!empty( $category )) { + /** @var ActiveQuery $query */ + /**@var Category $category * */ + $query = $category->getProducts(); + + } else { + $query = Product::find() + ->joinWith( + [ + 'category.lang', + ] + ); + } $query->select([ 'product.*' ]); $query->joinWith( @@ -171,7 +176,6 @@ ] ); - FilterHelper::setQueryParams($query, $params); return $query; } @@ -184,7 +188,13 @@ public function priceLimits($category = null, $params = []) { - $query = $category->getProducts(); + if (!empty( $category )) { + /** @var ActiveQuery $query */ + // $query = $category->getRelations('product_categories'); + $query = $category->getProducts(); + } else { + $query = Product::find(); + } $query->select(['MAX('.ProductVariant::tableName() . '.price) as max', 'MIN('.ProductVariant::tableName() . '.price) as min']); $query->joinWith('variant'); -- libgit2 0.21.4