2016-05-17 68 views
1

我已經使用了laravel 5.2默認用戶註冊和登錄表單。我的要求是創建兩種類型的用戶。它不是一種用戶和管理員。但它的兩種類型的用戶在網站user1和user2在註冊表中有不同的字段。因此,我已經複製了register.blad.php並在authcontroller中創建了一個函數。爲了區分數據庫中的兩個表單值,我使用了一個名爲user_type的字段。 user_type是兩個註冊表單中的隱藏字段。這裏是我的身份驗證控制器在一個用戶表中爲user_type字段創建laravel 5.2用戶註冊多個用戶

 
    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

支票'postRecruiter'你'$ request'變量是否有'user_type'。 – Abbasi

+0

是的,我已經檢查過它,甚至我有價值。我使用user_type作爲隱藏字段的寄存器形式 – revtech

回答

1

我找到了在數據庫中不保存值的解決方案。我忘了將我的變量名添加到受保護的可填充文件中。

 

     protected $fillable = ['name', 'email', 'password','user_type',]; 

但現在剩下的另一點是註冊後自動登錄用戶作爲Auth :: login不工作。

編輯: 我也解決了認證問題。 我忘了在我的控制器中添加使用認證。

愚蠢的錯誤