public function actionChange($id) { $filterForm = new models\FiltersForm(); $print = $this->loadPrint($id); $colors = models\ClothingColor::getAll(true, false); $sizes = models\ClothingSize::getAll(true, false); $sex = models\ClothingSex::getAll(true, false); $types = models\ClothingType::getAll(true, false); $post = Yii::$app->request->post(); if ($post) { $filterForm->load(Yii::$app->request->post()); } else { $filterForm->size = isset($sizes[0]->id) ? $sizes[0]->id : null; $filterForm->sex = isset($sex[0]->id) ? $sex[0]->id : 3; $filterForm->type = isset($types[0]->id) ? $types[0]->id : null; $filterForm->color = isset($colors[0]->id) ? $colors[0]->id : null; } $goods = $print->getGoodsByCriteria($filterForm->getActiveQueryFilterGoods()); return $this->render('change', ['goods' => $goods, 'colors' => $colors, 'sizes' => $sizes, 'sex' => $sex, 'types' => $types, 'print' => $print, 'filterForm' => $filterForm]); }
/** * @return \yii\db\ActiveQuery */ public function getType() { return $this->hasOne(ClothingType::className(), ['id' => 'type_id']); }
use yii\widgets\ActiveForm; use app\models; use kartik\file\FileInput; /* @var $this yii\web\View */ /* @var $model app\models\Goods */ /* @var $form yii\widgets\ActiveForm */ ?> <div class = "goods-form"> <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?> <?php echo $form->field($model, 'type_id')->dropDownList(models\ClothingType::getAll()); ?> <?php echo $form->field($model, 'color_id')->dropDownList(models\ClothingColor::getAll()); ?> <?php echo $form->field($model, 'sex_id')->dropDownList(models\ClothingSex::getAll()); ?> <?php echo $form->field($model, 'description')->textarea(['rows' => 6]); ?> <?php echo $form->field($model, 'sizes')->listBox(\yii\helpers\ArrayHelper::map($sizes, 'id', 'name'), ['multiple' => true, 'selected' => $model->getSizesIds(), 'size' => 6]);