Перенаправление Laravel 5.1 после регистрации не работает

#php #laravel #redirect #registration

#php #laravel #перенаправление #Регистрация

Вопрос:

Я просто хочу переопределить postRegister() метод, чтобы избежать автоматического входа пользователя в систему Laravel после регистрации. Так что я сделал внутри AuthController.php:

 public function postRegister(Request $request)
{
    $validator = $this->validator($request->all());

    if ($validator->fails()) {
        $this->throwValidationException(
            $request, $validator
        );
    }

    $this->create($request->all());

    return redirect('test');
}
  

Laravel создает пользователя без входа в систему, как я хочу, проблема в строке перенаправления. По какой-то очень странной причине всегда перенаправляет пользователя на '/auth/login' маршрут.
Я прокомментировал все мои промежуточные программы, просто чтобы убедиться, что перенаправление не выполняется каким-либо промежуточным программным обеспечением:

     protected $routeMiddleware = [
    'auth' => CapTableHttpMiddlewareAuthenticate::class,
    'auth.basic' => IlluminateAuthMiddlewareAuthenticateWithBasicAuth::class,
    'guest' => CapTableHttpMiddlewareRedirectIfAuthenticated::class,
    'activated' => CapTableHttpMiddlewareUserActive::class,
];
  

Я пытался php artisan clear-compiled и php artisan cache:clear и php artisan clear:config очистить все возможные файлы кэша или конфигурации, но Laravel все еще перенаправляет на /auth/login .

После некоторой отладки в коде я увидел, что он читает мою новую функцию, которая переопределяет оригинал в поставщике.

Я действительно без идей, у кого-то здесь была похожая проблема или знаю, как я могу узнать, что здесь происходит?

PS test — это просто псевдоним маршрута, на который я хочу перенаправить пользователя.

Спасибо, ребята

Ответ №1:

Попробуйте указать точный маршрут, как определено в вашем route.php

 public function postRegister(Request $request) {

       // your code here

return redirect('/login'); //This is the actual route as defined and not an alias

}
  

Если нет, попробуйте использовать return Redirect::to('http://example.com/login'); или return Redirect::back();

Комментарии:

1. Безуспешно …. это действительно странно. У меня была переопределена функция postLogin в AuthController, и она работает нормально.

2. Ребята, я решил проблему. Моя проблема была в Angular.js . В моем интерфейсном контроллере у меня было одно перенаправление на ‘auth / login’, которое переопределяло перенаправление бэкэнда. Спасибо за ваше время.

Ответ №2:

Проблема была не в серверной части. У меня было некоторое перенаправление в моем интерфейсе (Angular.js ) это было переопределение перенаправления Laravel.

 window.location = '/auth/login';
  

Но я усвоил важный урок: всегда проверяйте интерфейс.