2017-10-30 3 views
0

Ich habe Hersteller und Kunde in der Anmeldung funktioniert es gut und Weiterleitung an Dashboard-Anbieter oder Kunde, aber wie das Gleiche nach der Registrierung zu tun? in Registerregler Ich habeLaravel nach der Registrierung Redirect basierend auf Rollen

protected $redirectTo = '/'; 

Anmeldung Controller-

public function login(Request $request) 
{ 
    $this->validate($request,[ 
'email'=>'required|email', 
'password'=>'required|min:6', 
]); 



if(Auth::guard('web')->attempt(['email'=>$request->email,'password'=>$request->password,'active'=>1,'role_id'=>2],$request->remember)){ 

return redirect()->intended(route('customer.dashboard')); 

}elseif(Auth::guard('web')->attempt(['email'=>$request->email,'password'=>$request->password,'active'=>1,'role_id'=>1],$request->remember)) 
{return redirect()->intended(route('vendor.dashboard')); 

}return redirect()->back()->withInput($request->only('email','remember')); 
    } 
+0

Tipp: Verwenden Sie nicht den gleichen Wächter, machen Sie separate Wächter wie Kunde und Verkäufer. So viel einfacher zu warten und zu lesen. – Ohgodwhy

Antwort

0

Sie können so etwas wie dies versuchen stattdessen

<?php 

public function login (Request $request) { 

    $this->validate($request,[ 
      'email'=>'required|email', 
      'password'=>'required|min:6', 
     ]); 

    $authenticated = Auth::guard('web')->attempt(['email'=>$request->email,'password'=>$request->password], $request->remember)); 

     if (!$authenticated) { 
      return redirect()->back()->withInput($request->only('email','remember')); 
     } 

     // We already have a auth user 

     $redirectRoute = $this->determineBackendRoute(); 

     return redirect()->intended(route($redirectRoute)); 

} 

/** 
* Determine currently authenticated users destination backend 
* */ 
public function determineBackendRoute() { 

    $role = auth()->user()->role_id; 

    switch ($role) { 
     case '1': 
      $route = 'vendor.dashboard'; 
      break; 

     case '2': 
      $route = 'vendor.dashboard'; 
      break; 

     default: 
      $route = 'home'; 
      break; 
    } 

    return $route; 
} 
+0

Redirect nach dem Login funktioniert gut, ich rede über nach der Registrierung, wie man wenn in Register Middleware in der Zeile enthält protected $ redirectTo = '/'; –

+0

Redirect nach dem Login funktioniert gut, ich rede über nach der Registrierung, wie man wenn in Register Middleware in der Zeile enthält protected $ redirectTo = '/'; –

0

die authentifizierte Methode in LoginController Überschreiben

protected function authenticated(Request $request, $user) 
    { 
     //write your logic's here 

     if ($user->role_id == 1) { 
      return redirect()->route('write the route name'); 
     } 

     return redirect('/home'); 
    } 
+0

Dies ist keine Umleitung nach der Registrierung !! Mit Login habe ich kein Problem, aber mit der Registrierung ist das Problem –

Verwandte Themen