* @var $model \app\properties\AbstractModel * @var $multiple boolean * @var $property_id integer * @var $property_key string * @var $this \yii\web\View * @var $values \app\properties\PropertyValue */ use app\models\Property; use app\modules\shop\models\Product; use yii\helpers\ArrayHelper; use kartik\helpers\Html; $productIds = ArrayHelper::getColumn($values->values, 'value'); /** @var Product[] $products */ $products = []; foreach ($productIds as $id) { $products[] = Product::findOne($id); } ?> <dl> <?php if (count($productIds) == 0) { return; } $property = Property::findById($property_id); echo Html::tag('dt', $property->name); foreach ($products as $product) { echo Html::tag('dd', Html::a($product->name, ['@product', 'model' => $product])); } ?> </dl>
/** * @param $id * @return \yii\web\Response * @throws NotFoundHttpException * @throws \Exception */ public function actionDelete($id) { /** @var Product $model */ if (null === ($model = Product::findOne($id))) { throw new NotFoundHttpException(); } if (Yii::$app->request->get('returnUrl') !== null) { $redirect = Yii::$app->request->get('returnUrl'); } elseif ($model->parent_id == 0) { $redirect = Url::toRoute(['index']); } else { $redirect = Url::toRoute(['edit', 'id' => $model->parent_id]); } if (!$model->delete()) { Yii::$app->session->setFlash('info', Yii::t('app', 'The object is placed in the cart')); } else { Yii::$app->session->setFlash('info', Yii::t('app', 'Object has been removed')); } return $this->redirect($redirect); }
<?php /** * @var $attribute_name string * @var $form \yii\widgets\ActiveForm * @var $label string * @var $model \app\properties\AbstractModel * @var $multiple boolean * @var $property_id integer * @var $property_key string * @var $this \yii\web\View * @var $values \app\properties\PropertyValue */ use app\modules\shop\models\Product; use yii\helpers\ArrayHelper; $productIds = ArrayHelper::getColumn($values->values, 'value'); $data = []; foreach ($values->values as $value) { $product = Product::findOne($value['value']); if (is_object($product)) { $data[$product->id] = $product->name; } } ?> <?php echo \app\backend\widgets\Select2Ajax::widget(['initialData' => $data, 'form' => $form, 'model' => $model, 'modelAttribute' => $property_key, 'multiple' => $multiple === 1, 'searchUrl' => '/shop/backend-product/ajax-related-product', 'additional' => ['placeholder' => Yii::t('app', 'Search')]]);