Возможно, вы застряли в бесконечном цикле, в котором ваша подпрограмма begin
перенаправляет пользователя на другую страницу в вашем приложении Catalyst; как только «контроллер, который будет работать, будет идентифицирован, но перед тем, как будут вызваны действия по сопоставлению URL» ( из Catalyst::Manual::Intro
справочной страницы ), begin
будет вызван снова, вызывая другое перенаправление на.
Попробуйте полностью удалить этот код из begin
; возможно, как предположил Хтбаа, auto
может быть тем, что вы ищете. Стандартный $c->detach
корпус (в контроллере controller
):
sub check_login :Local {
# do something
$c->detach('controller/login_successful') if($success);
# display error message
}
sub login_successful :Local {
# do something with the logged in user.
}
В этом случае выполнение $c->res->redirect('http://example.com/login_successful')
также должно работать идеально. Надеюсь, это поможет!