We can override this property to redirect users after login in LoginController:
protected $redirectTo = \'/home\';
And here is the statement fr
Simple solution
Override redirectPath()
instead of redirectTo()
.
Using raw string return:
protected function redirectPath()
{
if (Auth::user()->role==0) {
return '/volunteer';
} else {
return '/donor';
}
}
Or overriding redirectPath()
to the Laravel 5.3.29 redirectPath()
version and then your redirectTo()
method will work.
public function redirectPath()
{
if (method_exists($this, 'redirectTo')) {
return $this->redirectTo();
}
return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home';
}
Why redirectTo() is not working
Tested overriding the redirectPath()
or redirectTo()
method in App\Http\Controllers\Auth\LoginController.php
on a clean Laravel v.5.3.29 + default Auth, they work as expected.
Example of redirectTo() method
Documentation says:
If the redirect path needs custom generation logic you may define a redirectTo method instead of a redirectTo property.
So, the function should look something like this:
protected function redirectTo()
{
if(condition) {
return "/your/path";
}
return "/your/secondpath";
}