Есть пошаговая форма. Заполнили первую. нажали save, прошла валидация и если все норм переходим к шагу 2(там своя валидация и своя модель) и так 15 шагов.
Нужно сделать из всех этих шагов и моделей ОДНУ форму без переходов.
Задача то простая , но я не хочу все модели переносить в одну (будут тысячи строк) и делать одну таблицу в БД из 15) вся логика приложения полетит.
Вьюхи все в одну я перенесу, но как их потом валидировать?
Что бы я нажал save и проверилось каждое поле. Не правильно заполненые подсветились и выдало ошибки.
Резюмирую:
Как валидировать форму поля которой находятся в разных моделях?
Пошаговая форма из разных моделей. Сделать одну.
Re: Пошаговая форма из разных моделей. Сделать одну.
Код: Выделить всё
public function actionCreate()
{
$form1 = new Form1();
$form2 = new Form2();
if (Yii::app()->getRequest()->getParam('ajax') === 'my-form') {
$form1->setAttributes($_POST['Form1']);
$form2->setAttributes($_POST['Form2']);
$isValid = $form1->validate();
$isValid = $form2->validate() && $isValid;
// и тп.
if ($isValid) {
// процесс сохранения
}
}
$this->render('create', [
'form1' => $form1,
'form2' => $form2,
]);
}