在一个用户表中使用 user_type 字段为多个用户创建 laravel 5.2 用户注册
Posted
技术标签:
【中文标题】在一个用户表中使用 user_type 字段为多个用户创建 laravel 5.2 用户注册【英文标题】:Create laravel 5.2 user registration for multiple user with user_type field in one user table 【发布时间】:2016-09-13 12:14:16 【问题描述】:我使用了 laravel 5.2 默认的用户注册和登录表单。我的要求是创建两种类型的用户。它不是一种用户和管理员。但是它在网站 user1 和 user2 中的两种类型的用户在注册表单中有不同的字段。所以为此我复制了 register.blad.php 并在 authcontroller 中创建了一个函数。为了区分数据库中的两个表单值,我使用了一个名为 user_type 的字段。 user_type 是两个注册表单中的隐藏字段。这是我的身份验证控制器
受保护的函数创建(数组 $data) 返回用户::创建([ 'name' => $data['name'], 'email' => $data['email'], 'user_type'=> $data['user_type'], '密码' => bcrypt($data['密码']), ]); /* 用户类型的自定义函数 */ 公共函数 getRecruiter() 返回视图('auth.recruiter'); 公共函数 postRecruiter(请求 $request) $this->validate($request, [ '名称' => '必需|最大:255', '电子邮件' => '必需|电子邮件|唯一:用户', '密码'=> '必需|分钟:6', '公司'=>'必需', '位置'=>'必需', “网址”=>“必填” ]); $user = 用户::创建([ 'name' => $request->name, 'email' => $request->email, 'user_type'=> $request->user_type, // 第二个用户类型的 user_type。 '密码' => bcrypt($request->密码), ]); 返回视图(“家”);一切正常,但 user_type,remember_token 没有保存在数据库中。
最后是。我不知道注册后如何登录用户。像默认功能。如果我使用 Auth::login($user) 那么它会出错。
App\Http\Controllers\Auth\auth 未找到。
请帮我解决这个问题,因为我不想创建任何其他表。很多线程就像有两个表,但我想用一个具有不同用户类型的表来解决它。
【问题讨论】:
检查$request
中的postRecruiter
变量是否有user_type
。
是的,我已经检查过了,甚至我从中获得了价值。我在注册表单中使用 user_type 作为隐藏字段
【参考方案1】:
我找到了不在数据库中保存价值的解决方案。我忘记在受保护的可填充中添加我的变量名。
protected $fillable = ['name', 'email', 'password','user_type',];但是现在剩下的一点是注册为 Auth::login 后的自动登录用户不起作用。
编辑: 我也解决了身份验证问题.. 我忘记在我的控制器中添加 use Auth。
愚蠢的错误
【讨论】:
我总是忘记那些愚蠢的Mass Assigment
东西,并时不时给我带来问题,哈哈。以上是关于在一个用户表中使用 user_type 字段为多个用户创建 laravel 5.2 用户注册的主要内容,如果未能解决你的问题,请参考以下文章
如何在 DJANGO 中查询包含值列表的 JSONField