2015-07-01 50 views
5

Tôi có biểu mẫu đăng nhập và sau khi gửi biểu mẫu (nếu xác thực là OK), trình duyệt sẽ chuyển hướng đến trang trước trước khi đăng nhập. Hiện tại tôi chuyển hướng trở lại và tôi luôn truy cập vào cùng một trang đăng nhập. routes.php của tôi là một cái gì đó như thế này:Laravel Chuyển hướng đến Trước sau khi đăng nhập

Route::get('/', '[email protected]'); 
Route::get('/list','[email protected]'); 
Route::get('/login','[email protected]'); 
Route::post('/login','[email protected]_login'); 

Và Redirection của tôi bên do_login() là

if(Login_is_valid()) 
{ 
    return Redirect::back(); 
} 

Nếu tôi bên trong/trang danh sách và sau đó mở Đăng ký và điền vào form trực tiếp tôi được chuyển hướng đến/đăng nhập một lần nữa không phải là nó lạ? Rất cám ơn

+0

Phản hồi hoàn toàn hợp lệ. Sau khi gửi biểu mẫu từ một trang, thì 'back()' sẽ chuyển bạn đến cùng một trang. Làm một 'return redirect ('url go here')' – Andrew

+0

Chết tiệt, vì vậy bất cứ khi nào tôi nhập trang đăng nhập, tôi phải lưu trữ $ _SESSION người giới thiệu? –

+0

Bạn có muốn chuyển hướng đến tuyến đường dự định không? – DavidDomain

Trả lời

8

Xin chào nếu bạn sử dụng Laravel 5.1 bạn có thể chuyển hướng đến trang trước cách tiếp

return back(); 

hoặc bạn có thể sử dụng phiên nơi Laravel lưu trước trang

return redirect(Session::get('_previous')['url']); 
0

trong Auth/LoginControllerprotected $redirectTo = '/home'; thay đổi '/ home' to '/ loginin' ví dụ, và tạo ra một con đường mới mà trông như thế này

Route::get('/loginin', function() 
{ 
     $page = '/' . session()->get('page'); 
     if($page != '') 
     { 
      session()->put('page', ''); 
      return redirect($page); 
     } 
     else 
     { 
      return redirect('/home'); 
     } 
}); 

hoặc bạn có thể đặt điều này trong một bộ điều khiển và gọi nó là từ con đường

và trong mỗi chức năng trong bộ điều khiển trang mã này

session->put('page','/name_of_the_page'); 
Các vấn đề liên quan