在一个用户表中使用 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

基于多用户角色的路由级中间件

Django - create_superuser() 得到了一个意外的关键字参数“user_type”

在一个字段中使用多个参数按表单访问查询

Rails 设计多态 - 使用 Ajax 获取部分渲染

JavaScript 中两个或多个数组的 SQL 连接