У меня есть форма для создания юзера (UserRegisterForm), и есть форма для редактирования юзера (UserEditForm). И есть собственно актив-рекорд модель самого юзера User.
У форм редактирования и создания юзеров немного разная валидация, соответственно это и было причиной разделить логику на 2 разные формы.
При редактировании юзера я рендерю форму редактирования стантартным способом:
действие к которому идет обращение через ажакс:
public function actionEdit($id) {
$userId = (int)Yii::$app->request->get('id');
$user = User::findOne($userId);
$model = new UserEditForm();
$model->load($user);
return $this->renderAjax('_form-edit', [
'model' => $model,
]);
}
и отдельное действие для ажакс-валидации этой формы:
public function actionValidate() {
$model = new UserEditForm;
if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post(), 'UserEditForm')) {
Yii::$app->response->format = 'json';
return ActiveForm::validate($model);
} else {
return 'NOT_AJAX OR FROM_NOT_LOADED';
}
}
Что я не правильно делаю? почему не работает валидация? Я жду на входе EditUserForm[], а приходит User.
Как правильно сделать подсовывание в форму данных из модели, для редактирования? Передавать отдельными переменными во view-формы и там уже внедрять значения в поля? Я думал для этого и есть метод модели load(). Подскажите чайнику.
Сама модель формы редактирования:
https://gist.github.com/tihoho/164973535579ff1ef7a...
А так я ее рендерю:
https://gist.github.com/tihoho/4b68995ee99de96becb...