findModel($id); /** * @var SeoComponent $seo */ $seo = Yii::$app->get('seo'); $seo->setModel($model->lang); $variant = $model->variants[ 0 ]; $groups = $variant->getSortedGroups(); $similar = $model->getSimilarProducts(8); return $this->render( 'view', [ 'model' => $model, 'variant' => $variant, 'groups' => $groups, 'similar' => $similar, ] ); } /** * Find product by ID * * @param $id * * @return Product * @throws \yii\web\NotFoundHttpException */ protected function findModel($id) { /** * @var SeoComponent $seo */ $seo = \Yii::$app->get('seo'); /** * @var Product $model */ $model = Product::findWithFilters() ->with('lang', 'images', 'image') ->with( [ 'category' => function ($query) { /** * @var ActiveQuery $query */ $query->with('lang') ->with('parent.lang'); }, ] ) ->where([ 'id' => $id ]) ->one(); if (!empty( $model )) { if ($model->lang->alias_id !== $seo->aliasId) { throw new NotFoundHttpException('Wrong language'); } return $model; } else { throw new NotFoundHttpException('Model not found'); } } }