2015-07-11 124 views
1

我试图使用内置用户身份验证的Laravel 5.在这方面,我想重新定向用户成功登录后,某个路由/页面/控制器。我试图改变complied.php文件的代码。我正在尝试更改以下代码的/home,但它不起作用。Laravel 5内置用户身份验证

trait AuthenticatesAndRegistersUsers 
    { 
     protected $auth; 
     protected $registrar; 
     public function getRegister() 
     { 
      return view('auth.register'); 
     } 
     public function postRegister(Request $request) 
     { 
      $validator = $this->registrar->validator($request->all()); 
      if ($validator->fails()) { 
       $this->throwValidationException($request, $validator); 
      } 
      $this->auth->login($this->registrar->create($request->all())); 
      return redirect($this->redirectPath()); 
     } 
     public function getLogin() 
     { 
      return view('auth.login'); 
     } 
     public function postLogin(Request $request) 
     { 
      $this->validate($request, array('email' => 'required|email', 'password' => 'required')); 
      $credentials = $request->only('email', 'password'); 
      if ($this->auth->attempt($credentials, $request->has('remember'))) { 
       return redirect()->intended($this->redirectPath()); 
      } 
      return redirect($this->loginPath())->withInput($request->only('email', 'remember'))->withErrors(array('email' => $this->getFailedLoginMessage())); 
     } 
     protected function getFailedLoginMessage() 
     { 
      return 'These credentials do not match our records.'; 
     } 
     public function getLogout() 
     { 
      $this->auth->logout(); 
      return redirect('/home'); 
     } 
     public function redirectPath() 
     { 
      if (property_exists($this, 'redirectPath')) 
      { 
       return $this->redirectPath; 
      } 
      return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home'; 
     } 
     public function loginPath() 
     { 
      return property_exists($this, 'loginPath') ? $this->loginPath : '/auth/login'; 
     } 
    } 

感谢

回答

0

你不应该改变compiled.php

东西在RedirectIfAuthenticated中间件变化,

return new RedirectResponse(url('/home')); 

return new RedirectResponse(url('/')); 

这基本上将登录用户重定向到所需的路径,一旦登录用户返回到网站。 所以,handle功能按照AuthController

public $redirectTo = '/'; 
public $redirectAfterLogout = '/'; 

所以成功后登录用户西港岛线被重定向到redirectTo和注销的用户将被重定向到redirectAfterLogout后添加后lookes像下面,

public function handle($request, Closure $next) { 

    if ($this->auth->check()) 
    { 
     return new RedirectResponse(url('/')); 
    } 

    return $next($request); 
} 

+0

谢谢@pinkal vansia。如果预期的路线没有找到会发生什么?谢谢 –

+0

你在说什么路线?一般来说,你会得到Route找不到异常。 –

+0

谢谢@pinkal vansia。我得到这个错误'在编译.php行7319: 未定义的偏移:1'中的ErrorException。 –