YiiFramework Пошаговая регистрация Yii2

yintar

Новичок
Здравствуйте.
Мне предстоит крупный проект.И первое, что надо сделать это пошаговую регистрацию .т.е. на первом шаге в форме вводится часть полей для заполнения ,далее при нажатии на кнопку продолжить еще форма с новыми полями ,но, в ней также есть поля и из первого шага(в эти поля должны автоматически подгружаться данные из первого шага).
В принципе я б это реализовал так:
1 Для каждого шага своя модель формы (RegistrationStepOneForm и RegistrationStepTwoForm)
2.Для каждого шага свой экшен в контроллере (UserController)
3.Данные между шагами хранятся в сессии.После заполнения данных пользователем полей в первом шаге, данные записываются в сессию с помощью функции registrationStepOne() в модели RegistrationStepOneForm , а на втором шаге данные сохраняются в БД с помощью функции registrationStepTwo в модели RegistrationStepTwoForm .
Но я думаю, что это неправильный подход, одни и те же свойства будут повторяться в обоих моделях формы(RegistrationStepOneForm и RegistrationStepTwoForm ).?Где правильно записывать данные в сессию (в контроллере или в модели)? Правильно ли создавать 2 модели и 2 экшена?
В общем знающих специалистов прошу подсказать (или дать ссылки) как правильно организовать архитектуру такой пошаговой регистрации.
 

AnrDaemon

Продвинутый новичок
Зачем хранить что-то в сессии, когда этого можно не делать? Храни прямо в форме.
Либо сделай именно регистрацию сразу первым шагом, запросив необходимый абсолютный мимнимум, достаточный для идентификации пользователя. А дальше просто проверяй, что заполнены поля свойств и проси добить недостающую информацию при логине.
 

WMix

герр M:)ller
Партнер клуба
по твоей скудной информации, сложно судить правильный ли подход, как и ответить на вопрос, "Где правильно записывать данные". инициатором записи все одно будет контроллер, хоть даже это написано не явно, а как команда, независимому от места хранилищу, сервису или как ты выражаешься, методу registrationStepTwo, чем бы он не являлся

посоветую описать каждый шаг независимо от цепочки, определить что он делает и как его использовать, описать логику успешного завершения каждого шага и переходы при успешном завершении еще раз отдельно. продумать метод связывания.

возможно все уже за тебя продумали, хоть и приходится многословно описывать.
 
Последнее редактирование:
Сверху