public function validateTown($attribute, $params) { $count = HDtown::query(['country_id' => $this->country])->count(); if ($count > 1) { if ($this->town == 0) { $this->addError($attribute, 'Поле должно быть заполнено обязательно'); } } }
JS ); $form = ActiveForm::begin(['id' => 'contact-form', 'enableAjaxValidation' => true]); ?> <?php echo $model->field($form, 'date'); ?> <?php echo $model->field($form, 'time'); ?> <?php echo $model->field($form, 'country')->dropDownList(\yii\helpers\ArrayHelper::map(\app\models\HD::query()->select('id,title')->orderBy(['title' => SORT_ASC])->all(), 'id', 'title')); ?> <?php echo $model->field($form, 'town')->dropDownList(\yii\helpers\ArrayHelper::merge([0 => 'Ничего не выбрано'], \yii\helpers\ArrayHelper::map(\app\models\HDtown::query(['country_id' => $model->country])->select('id,title')->orderBy(['title' => SORT_ASC])->all(), 'id', 'title'))); ?> <div class="form-group"> <hr> <?php echo Html::submitButton('Далее', ['class' => 'btn btn-primary', 'name' => 'contact-button', 'style' => 'width:100%', 'id' => 'buttonNext']); ?> </div> <?php ActiveForm::end(); ?> </div> <!-- /Форма подключения дизайна человека --> <?php
/** * AJAX * * REQUEST: * - id - int - идентификатор * * @return array */ public function actionProfile_human_design_ajax() { $id = self::getParam('id'); $item = HD::find($id); $items = HDtown::query(['country_id' => $id])->select(['id', 'title'])->all(); return self::jsonSuccess(['item' => ['sub_type' => $item->getField('sub_type')], 'items' => $items]); }