Commit 0d3c7b1df3bf39352097362250b3e04ca6f3da95
1 parent
67a0e32e
20.07.16
Showing
1 changed file
with
16 additions
and
19 deletions
Show diff stats
common/modules/product/models/Category.php
... | ... | @@ -231,14 +231,7 @@ class Category extends \yii\db\ActiveRecord |
231 | 231 | $query1 = (new Query()) |
232 | 232 | ->distinct() |
233 | 233 | ->select([ |
234 | - 'option_id', | |
235 | - 'tax_option.*', | |
236 | - 'tax_group.*', | |
237 | - 'tax_option.alias as option_alias', | |
238 | - 'tax_group.alias as group_alias', | |
239 | - 'tax_value_string.value as value', | |
240 | - 'tax_option.sort AS tax_option_sort', | |
241 | - 'tax_group.sort AS tax_group_sort', | |
234 | + 'option_id' | |
242 | 235 | ]) |
243 | 236 | ->from('tax_option') |
244 | 237 | ->innerJoin('product_variant_option', 'tax_option.tax_option_id = product_variant_option.option_id') |
... | ... | @@ -253,14 +246,7 @@ class Category extends \yii\db\ActiveRecord |
253 | 246 | $query2 = (new Query()) |
254 | 247 | ->distinct() |
255 | 248 | ->select([ |
256 | - 'option_id', | |
257 | - 'tax_option.*', | |
258 | - 'tax_group.*', | |
259 | - 'tax_option.alias as option_alias', | |
260 | - 'tax_group.alias as group_alias', | |
261 | - 'tax_value_string.value as value', | |
262 | - 'tax_option.sort AS tax_option_sort', | |
263 | - 'tax_group.sort AS tax_group_sort', | |
249 | + 'option_id' | |
264 | 250 | ]) |
265 | 251 | ->from('tax_option') |
266 | 252 | ->innerJoin('product_option', 'tax_option.tax_option_id = product_option.option_id') |
... | ... | @@ -272,9 +258,20 @@ class Category extends \yii\db\ActiveRecord |
272 | 258 | ->where(['product_category.category_id' => $this->category_id, 'tax_group.is_filter' => TRUE]) |
273 | 259 | ->andWhere(['!=', 'product_variant.stock', 0]); |
274 | 260 | $query3 = (new Query()) |
275 | - ->select('*') | |
276 | - ->from(['subquery' => $query1->union($query2)]) | |
277 | - ->orderBy('tax_group_sort, tax_option_sort'); | |
261 | + ->select([ | |
262 | + 'tax_option.*', | |
263 | + 'tax_group.*', | |
264 | + 'tax_option.alias as option_alias', | |
265 | + 'tax_group.alias as group_alias', | |
266 | + 'tax_value_string.value as value', | |
267 | + 'tax_option.sort AS tax_option_sort', | |
268 | + 'tax_group.sort AS tax_group_sort', | |
269 | + ]) | |
270 | + ->from(['tax_option' ]) | |
271 | + ->where(['tax_option.tax_option_id'=>$query1->union($query2)]) | |
272 | + ->innerJoin('tax_group','tax_group.tax_group_id = tax_option.tax_group_id') | |
273 | + ->innerJoin('tax_value_string', 'tax_value_string.tax_option_id = tax_option.tax_option_id') | |
274 | + ->orderBy('tax_option.sort, tax_group.sort'); | |
278 | 275 | return $query3; |
279 | 276 | } |
280 | 277 | ... | ... |