我使用了laravel 5.2默认用户注册和登录表单。我的要求是创建两种类型的用户。它不是一种用户和管理员。但是它在网站user1和user2中的两种类型的用户在注册表单中有不同的字段。所以我已经复制了register.blad.php并在authcontroller中创建了一个函数。为了区分数据库中的两个表单值,我使用了一个名为user_type的字段。 user_type是两个注册表单中的隐藏字段。这是我的auth控制器
protected function create(array $data) { return User::create([ 'name' => $data['name'], 'email' => $data['email'], 'user_type'=> $data['user_type'], 'password' => bcrypt($data['password']), ]); } /* custom function for user type */ public function getRecruiter(){ return view('auth.recruiter'); } public function postRecruiter(Request $request){ $this->validate($request, [ 'name' => 'required|max:255', 'email' => 'required|email|unique:users', 'password'=> 'required|min:6', 'company'=>'required', 'location'=>'required', 'url'=>'required' ]); $user = User::create([ 'name' => $request->name, 'email' => $request->email, 'user_type'=> $request->user_type, // user_type for second user type. 'password' => bcrypt($request->password), ]); return view('home'); }
每件事情都运行正常但是user_type,remember_token没有保存在数据库中。
最后是。注册后我不知道如何登录用户。像默认功能。如果我使用 Auth :: login($ user),则会出错。
未找到App \ Http \ Controllers \ Auth \ auth。
请帮我解决这个问题,因为我不想创建任何其他表格。因为很多人都喜欢有两个表,但我想用一个具有不同用户类型的表来解决它。
答案 0 :(得分:1)
我找到了不在数据库中保存价值的解决方案。我忘了在protected fillable中添加我的变量名。
protected $fillable = ['name', 'email', 'password','user_type',];
但现在另一点是注册后自动登录用户,因为Auth :: login无效。
编辑: 我也解决了Auth问题.. 我忘了在控制器中添加使用Auth。
愚蠢的错误