[英]How to create a custom registration page for two step registration of a user in Laravel 5.3?
我正在研究Ubuntu 16.04LTS,并拥有PHP 7.0和Laravel 5.3的流浪家园环境。 我必须为用户创建一个两步注册过程。 例如,在表单的第一页上,用户将提供他的姓名,电子邮件和密码,如默认注册页面,并且将有一个“下一步”按钮,这将导致第二个表单,这些字段将被传递给第二种形式为隐藏字段。 在完成第二个表单后,用户将单击“注册”按钮,这将在默认用户迁移中将第一个表单详细信息添加到Users表,而在第二个页面上填写的表单将所有这些详细信息添加到一个不同的表,包括当前创建的用户的user_id,以便稍后我们可以在这两个表之间建立一个雄辩的关系。
我所做的是我创建了一个新的控制器,我有一个构造函数,允许这个自定义注册页面和第二个表单页面作为例外。 然后会有一个表单,它是默认注册页面的副本,这个注册表单将提交控制器中名为“注册”的方法将处理的值,它将接受所有这些值并将它们传递给第二个表单在第二种形式中,我在隐藏的输入字段中获取所有这些值。 然后在同一个自定义控制器中,我得到另一个名为“create”的方法,这个方法处理通过这个表单收到的所有请求。 然后我首先将所有这些字段保存到相关变量中,然后我将创建一个新的User实例,如下所示:
$name = $request->name;
$email = $request->email;
$password = $request->password;
$user = new User();
$user->name = $name;
$user->email = $email;
$user->password = bcrypt($password);
现在,一旦在数据库中创建了这个用户,我就将第二种形式的其他字段存储到相关变量中,就像上面的例子一样,稍后我正在为其他迁移创建一个新实例,我希望将其保存在second_form表。
到目前为止,一切正常,所有值都存储在数据库中。 问题出在这里,一旦用户点击“注册”按钮,他将被定向到新创建的欢迎页面,但他仍然没有登录。他需要从上面给出的登录链接再次登录(我只是更改了默认注册为注册并保持原样“登录”。
任何人都可以指导我,如果有任何其他方式或最佳实践,我可以实现两步注册表格的相同目标?
此致,Mohsin。
您可以手动验证创建的用户:
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
我正在解释我在我的一个项目中使用的方法,我在注册前有多个页面。
从第一页开始,传递的值保留在会话中。 然后下一页将获取更多信息。 当用户点击注册按钮时,我会将数据插入表中。
在db中保存值并重定向到仪表板后,确保使用Auth::login($user)
登录当前用户
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.