#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';
Но я усвоил важный урок: всегда проверяйте интерфейс.