У меня проблема при изменении перенаправления по умолчанию LoginController
после входа в систему, я получаю ErrorException in Response.php line 339: Header may not contain more than a single header, new line detected
Я уже пробовал все, но он просто не работает, код:
class LoginController extends Controller { protected $redirectTo = '/home'; protected function redirectTo() { if (\Auth::check()) { $user_id = \Auth::id(); $usuario = users::where('id','=',$user_id)->first(); if($usuario->hasRole('copy')){ return redirect('/copy/dashboardCopy'); } } } /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('guest', ['except' => 'logout']); } }
Согласно документации Laravel, этот метод имеет более высокий приоритет, чем атрибут, поэтому я предполагаю, что оставить класс атрибутом таким, какой он есть.
А также, я уже проверил, и код действительно достигает последнего условия.
Метод redirectTo должен возвращать URL-адрес, а не ответ перенаправления.
... protected function redirectTo() { if(\Auth::user()->hasRole('copy')){ return '/copy/dashboardCopy'; } } ...
Я только что решил это, заменив исходный код,
class LoginController extends Controller { /* |-------------------------------------------------------------------------- | Login Controller |-------------------------------------------------------------------------- | | This controller handles authenticating users for the application and | redirecting them to your home screen. The controller uses a trait | to conveniently provide its functionality to your applications. | */ use AuthenticatesUsers; /** * Where to redirect users after login. * * @var string */ protected $redirectTo; protected function redirectTo() { if(\Auth::user()->hasRole('copy')){ $this->redirectTo = '/copy/dashboardCopy'; return $this->redirectTo; } } /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('guest', ['except' => 'logout']); } }
public $ redirectTo = '/ lender / home';
protected function redirectTo() { if(\Auth::guard('lender')->check()){ $this->redirectTo = '/lender/home'; return $this->redirectTo; } }