Commit 72ce46f7c1bc96b81400ec9142bfad6686783d1b
1 parent
5fb852db
options in basket
Showing
1 changed file
with
43 additions
and
0 deletions
Show diff stats
models/Basket.php
... | ... | @@ -4,6 +4,7 @@ |
4 | 4 | |
5 | 5 | use artbox\catalog\models\Variant; |
6 | 6 | use yii\base\Component; |
7 | + use yii\db\ActiveQuery; | |
7 | 8 | use yii\helpers\Json; |
8 | 9 | use yii\web\Cookie; |
9 | 10 | use yii\web\NotFoundHttpException; |
... | ... | @@ -263,6 +264,48 @@ |
263 | 264 | ->indexBy('id') |
264 | 265 | ->all(); |
265 | 266 | } |
267 | + | |
268 | + public function findModelsWithOptions(array $variant_ids) | |
269 | + { | |
270 | + if (empty($variant_ids)) { | |
271 | + return []; | |
272 | + } | |
273 | + return Variant::find() | |
274 | + ->where([ 'variant.id' => $variant_ids ]) | |
275 | + ->joinWith( | |
276 | + [ | |
277 | + 'variantOptionExcls' => function (ActiveQuery $query) { | |
278 | + $query->with( | |
279 | + [ | |
280 | + 'group', | |
281 | + 'lang', | |
282 | + ] | |
283 | + ); | |
284 | + }, | |
285 | + ] | |
286 | + ) | |
287 | + ->joinWith('lang') | |
288 | + ->joinWith( | |
289 | + [ | |
290 | + 'product' => function ($query) { | |
291 | + /** | |
292 | + * @var \yii\db\ActiveQuery $query | |
293 | + */ | |
294 | + $query->with( | |
295 | + [ | |
296 | + 'lang', | |
297 | + 'image', | |
298 | + ] | |
299 | + ); | |
300 | + }, | |
301 | + ] | |
302 | + ) | |
303 | + ->with( | |
304 | + 'image' | |
305 | + ) | |
306 | + ->indexBy('id') | |
307 | + ->all(); | |
308 | + } | |
266 | 309 | |
267 | 310 | /** |
268 | 311 | * Clear basket | ... | ... |