2017-02-02 2 views
0

Ich habe ein Problem, wenn den LoginController nach dem Login umleiten Standard zu ändern, ich bin immer ein ErrorException in Response.php line 339: Header may not contain more than a single header, new line detectedLaravel 5.3 LoginController - Kopf darf nicht mehr als ein einziger Header enthält, neue Zeilen erkannt

Ich habe schon alles versucht, aber es funktioniert einfach nicht, der Code ist:

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']); 
} 
} 

nach Laravel Dokumentation hat das Verfahren eine höhere Priorität als das Attribut, so nehme ich an, es ist okay, die Klasse Attribut zu lassen, wie es ist.

Und auch habe ich bereits überprüft, und der Code tatsächlich die letzte Bedingung zu erreichen.

+0

ähnliche Fragen: http://stackoverflow.com/questions/8954971/cant-redirect-with-lot-of-variable-header-may-not-contain-more-than-a-single-h oder http://stackoverflow.com/questions/17699303/errorexception-warning-header-may-not-contain-more-than-a-single-header-new-l – Pipe

+0

Umm ja, aber ich kann nicht sehen, in denen Teil wird zweimal umgeleitet. –

+0

@ AarónGutiérrez Ich kann den Teil, der in dieser Frage überhaupt umleitet, nicht sehen. Alles, was ich sehe, ist eine Funktion, die * if * genannt wird, und * wenn * ihr Ergebnis als Antwort zurückgegeben wird, führt zu einer Umleitung. Könnte es wert sein zu überprüfen **, wo ** diese Antwort generiert wird und was darin enthalten ist. – apokryfos

Antwort

0

Ich habe gerade löste es den ursprünglichen Code zu ersetzen, mit

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']); 
} 
} 
4

Die Methode RedirectTo sollte einen URL-Pfad zurückkehren, nicht die Antwort Redirect.

... 
protected function redirectTo() 
{ 
    if(\Auth::user()->hasRole('copy')){ 
     return '/copy/dashboardCopy'; 
    }  
} 
... 
+0

beste lösung arbeit für mich .. –

+0

Vielen Dank! Ich benutzte 'return redirect() -> route ('series');' anstelle von 'return route ('series');' – JCarlos

-1

öffentlich $ redirectTo = '/ lender/home';

protected function redirectTo() 
{ 
    if(\Auth::guard('lender')->check()){ 
     $this->redirectTo = '/lender/home'; 
     return $this->redirectTo; 
    } 
} 
Verwandte Themen