По умолчанию обработчик почтового ящика по умолчанию перенаправляет URL-адрес, который пользователь намеревался посетить, прежде чем перенаправляться на страницу входа.
Если Laravel не может найти требуемое URL она проходит на выходе redirectPath()
из AuthenticatesAndRegistersUsers
черты, ниже:
/**
* Get the post register/login redirect path.
*
* @return string
*/
public function redirectPath()
{
if (property_exists($this, 'redirectPath'))
{
return $this->redirectPath;
}
return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home';
}
Как вы ГЭЭ, он ищет свойства redirectPath
и redirectTo
. Я не уверен, почему есть оба; возможно, для БК с более старой версией.
Установка любого из этих свойств в вашем контроллере должна быть достаточной. Тем не менее, вы также можете перезаписать этот метод в своем контроллере, если хотите реализовать его по-другому.
Следует отметить, что этот метод вызывается только в том случае, если Laravel не может найти предполагаемый URL-адрес. Если, например, вы посещаете /home
и перенаправлены на страницу входа, /home
- ваш целевой URL, и поэтому вы будете перенаправлены туда.
Единственный способ заставить это либо заменить реализацию postController, переписав метод в вашем контроллере, либо, возможно, сначала установить переменную сеанса url.intended
.
// Obviously add namespaces and use statements
class AuthController extends Controller {
use AuthenticatesAndRegistersUsers {
postLogin as traitPostLogin;
}
protected $redirectTo = 'some-page';
function postLogin(Request $request) {
session('url.intended', $this->redirectTo);
return $this->traitPostLogin($request);
}
}
Try 'redirectPath' вместо' redirectTo', я сомневаюсь, что он будет делать что-нибудь, но 'RedirectsUsers' [черта] (https://github.com/laravel/framework/blob/5.1/src /Illuminate/Foundation/Auth/RedirectsUsers.php), похоже, предпочитает это над 'redirectTo'. Но да, первое, что он сделает, это попытаться перенаправить вас к месту, которое вы изначально собирались уйти, поэтому, если вы отправились в '/ home' и перенаправили на страницу входа в систему, он перенаправит вас на родину после login по умолчанию, см. [здесь] (https://github.com/laravel/framework/blob/5.1/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php#L86). – alexrussell
У меня нет/home route, и я удалил HomeController :) И, как я писал, я попробовал 2 свойства, и никто не работает – Lolo