Как создать пользовательскую страницу регистрации для двухэтапной регистрации пользователя в Laravel 5.3?

Я работаю над Ubuntu 16.04LTS и у меня есть среда бродячих домов с PHP 7.0 и Laravel 5.3. Я должен создать двухэтапный процесс регистрации для пользователя. Например, на первой странице формы пользователь предоставит свое имя, адрес электронной почты и пароль, такие как страница регистрации по умолчанию, и будет кнопка «Далее», которая приведет ко второй форме, и эти поля будут переданы этому вторая форма как скрытые поля. Отсюда после заполнения второй формы пользователь нажимает кнопку «Зарегистрироваться», и это добавит детали первой формы в таблицу «Пользователи» при миграции пользователей по умолчанию, а форма, заполненная на второй странице, добавит все эти данные в другая таблица, включающая в себя user_id этого созданного в настоящее время пользователя, так что позже мы сможем установить красноречивую связь между этими двумя таблицами.

Что я сделал, так это то, что создал новый контроллер, в котором у меня есть конструктор, который разрешит эту пользовательскую страницу регистрации и вторую страницу формы в качестве исключения. Затем будет форма, которая является копией страницы регистрации по умолчанию, и эта форма регистрации будет передавать значения, которые будет обрабатывать метод в контроллере с именем «Registration», и принимать все эти значения и передавать их во вторую форму. и во второй форме я выбираю все эти значения в скрытых полях ввода. Затем в том же пользовательском контроллере я получил другой метод под названием «создать», этот метод обрабатывает все запросы, полученные через эту форму. Затем сначала я сохраняю все эти поля в соответствующие переменные, а затем создаю новый пользовательский экземпляр, например:

$name = $request->name;
$email = $request->email;
$password = $request->password;

$user = new User();
$user->name = $name;
$user->email = $email;
$user->password = bcrypt($password);

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

Сейчас все работает нормально, и все значения хранятся в базе данных. Проблема заключается здесь в том, что как только пользователь нажимает кнопку «Зарегистрироваться», он направляется на вновь созданную страницу приветствия, но он все еще не вошел в систему. Ему необходимо снова войти в систему по указанной выше ссылке для входа в систему (я только изменил по умолчанию зарегистрируйтесь для регистрации и оставьте «Логин» как есть).

Может ли кто-нибудь мне помочь, если есть какой-либо другой способ или наилучшая практика, с помощью которой я могу достичь той же цели, что и двухэтапная форма регистрации?

С уважением, Мохсин.

1

Решение

Вы можете вручную аутентифицировать созданного пользователя:

Auth::login($user); // Login given user
Auth::login($user, true); // Login and remember the given user

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

https://laravel.com/docs/5.3/authentication#other-authentication-methods

0

Другие решения

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

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

Обязательно используйте Auth::login($user) войти в систему текущего пользователя после сохранения значений в БД и перенаправить на панель инструментов

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector