Форма регистрации в несколько шагов => Несколько запросов? (Laravel)

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

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

  1. UserDetailsRequest (без учета адресов)
  2. BusinessDetailsRequest (без учета адресов)
  3. AddressRequest
  4. ExtraFieldsRequest

ИЛИ ЖЕ

  1. UserDetailsRequest (с адресами)
  2. BusinessDetailsRequest (с адресами)
  3. ExtraFieldsRequest

Могу ли я объединить запросы в моем контроллере в зависимости от типа пользователя и если они необходимы для предоставления адреса?

В общем, нужно ли создавать столько запросов, сколько у меня есть форм в моем проекте? Могу ли я вместо этого создать "больший" запрос формы и добавить в него некоторую логику?

1 ответ

Начальный совет: во-первых, если адреса относятся к двум отдельным объектам, я бы не стал разделять все для создания третьего шага мастера "Адреса". Это может привести к путанице с точки зрения пользовательского опыта. Вместо этого я предпочел бы второе решение, которое вы предложили, с тремя шагами.

Теперь о мастере и хранении данных. Конечно, вы можете сделать это разными способами. Очевидно, что вы можете использовать сеансы, но если вы не знаете, как ваше приложение будет масштабироваться в будущем, вы можете столкнуться с некоторыми проблемами. Я бы сделал что-то другое.

Как это:

  • используйте некоторую библиотеку или фреймворк (jQuery, Angular, оба, на ваше усмотрение), чтобы создать одностраничное приложение для вашего мастера. Это будет чище, а также более удобно, если ваш пользователь захочет вернуться, отредактировать что-то и так далее;
  • создайте объект javascript со всеми необходимыми данными, а затем отправьте их контроллеру, где они будут проверены, проверены и затем обработаны. Очевидно, вы будете создавать классы соответственно;

Я не люблю использовать сессии. Если я могу не использовать их, я всегда наслаждаюсь этим в долгосрочной перспективе.

Другие вопросы по тегам