Пошаговая форма из разных моделей. Сделать одну.

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
ninzzo
Сообщения: 348
Зарегистрирован: 2014.04.25, 07:29

Пошаговая форма из разных моделей. Сделать одну.

Сообщение ninzzo »

Есть пошаговая форма. Заполнили первую. нажали save, прошла валидация и если все норм переходим к шагу 2(там своя валидация и своя модель) и так 15 шагов.

Нужно сделать из всех этих шагов и моделей ОДНУ форму без переходов.
Задача то простая , но я не хочу все модели переносить в одну (будут тысячи строк) и делать одну таблицу в БД из 15) вся логика приложения полетит.

Вьюхи все в одну я перенесу, но как их потом валидировать?
Что бы я нажал save и проверилось каждое поле. Не правильно заполненые подсветились и выдало ошибки.

Резюмирую:
Как валидировать форму поля которой находятся в разных моделях?
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Пошаговая форма из разных моделей. Сделать одну.

Сообщение SiZE »

Код: Выделить всё

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,
    ]);
}
Но конечно интересней все вынести в одну модель формы.
Ответить