2017-03-16 142 views
4

我想要註冊成功後自動登錄和重定向到編輯個人資料頁面。我試着下面的代碼,但沒有工作,我想如何在laravel 5.4.12中成功註冊後自動登錄?

class RegisterController extends Controller 
{ 

use RegistersUsers; 

protected $redirectTo = '/edit_profile'; 


public function __construct() 
{ 
    $this->middleware('guest'); 
} 

public function createUser(Request $request) 
{ 


    $this->validate($request , [ 
     'firstName' => 'required', 
     'lastName'  => 'required', 
     'displayName' => 'required', 
     'email'  => 'required |email', 
     'password'  =>'required ', 
     'gender'  =>'required', 
     'day'   =>'required|max:2', 
     'month'  =>'required|max:2', 
     'year'  =>'required|max:4', 
    ]); 
    $email=$request->input('email'); 
    $password=$request->input('paasword'); 
    $dob=$request->input('day').'-'.$request->input('month').'-'.$request->input('year'); 
    $request->request->add(['dob'=>$dob]); 
    $request->request->add(['password'=>bcrypt($request->input('password'))]); 
    $data = User::create($request->except(['_token', 'submit', 'day','month','year', 'confirm_password' ,'dayInWeek'])); 

    Auth::login($data); 

} 

} 

路線

Route::get('/', '[email protected]'); 
    Route::get('/home', '[email protected]'); 


    Route::group(['middleware' => 'auth' ], function() 
    { 
    Route::get('main', '[email protected]'); 

    Route::get('browse', '[email protected]'); 

    Route::get('pickngo', '[email protected]'); 

    Route::get('edit_profile', '[email protected]'); 
    } 
+0

如果您使用的是laravel的'make:auth'嘗試將active標誌設置爲true並測試是否如此。如果是的話,我們將開始根據您的業務找出解決方案 –

回答

1

只需修改您的身份驗證登錄就像

if(Auth::login($data)) { 
    return redirect('/edit_profile'); 
    } 
    else 
    { 
    return redirect()->back(); 
    } 
2

使用Laravel loginUsingId($ id)function by pa發送用戶標識。

$data = User::create($request->except(['_token', 'submit', 'day','month','year', 'confirm_password' ,'dayInWeek'])); 

Auth::loginUsingId($data->id); 
1

從文檔中刪除。 您只需在LoginController中登錄redirectTo屬性或方法後添加。 如果您使用laravel的make:auth,則P.S.it可以工作。 Screen from documentation