Как в Laravel после регистрации/авторизации оставаться на той же странице?

В Laravel после регистрации или авторизации можно остаться на текущей странице с помощью перенаправления пользователя на предыдущую страницу.

По умолчанию, Laravel автоматически перенаправляет пользователя на URL, указанный в свойстве $redirectTo в классе RedirectsUsers. Это свойство находится в трейте AuthenticatesUsers для авторизации и RegistersUsers для регистрации.

Чтобы изменить это поведение и оставить пользователя на текущей странице, нужно переопределить метод redirectTo() в соответствующем контроллере. Например, в контроллере LoginController для авторизации:

use IlluminateHttpRequest;
use IlluminateSupportFacadesRedirect;

// ...

protected function redirectTo()
{
    return request()->headers->get('referer');
}

В приведенном примере мы используем метод request()->headers->get('referer'), чтобы получить URL предыдущей страницы. Затем мы возвращаем этот URL в методе redirectTo(), чтобы Laravel перенаправил пользователя на ту же страницу.

Если вы хотите изменить поведение после успешной регистрации, вы можете переопределить метод registered() в контроллере RegisterController:

protected function registered(Request $request, $user)
{
    return redirect()->intended($this->redirectPath());
}

Метод registered() вызывается после успешной регистрации и принимает экземпляр Request и пользователя, которого только что зарегистрировали. В этом методе мы используем метод redirect()->intended($this->redirectPath()), чтобы перенаправить пользователя на предыдущую страницу (intended()) или на другой URL, определенный в методе redirectPath(), если предыдущей страницы нет.

В обоих случаях вы можете изменить логику перенаправления на свое усмотрение, в зависимости от требований вашего проекта.