symfony -- не работает redirect() Как сделать переадресацию
Primary tabs
Не работает метод redirect($url) в Symfony
Маршрутизация контроллера построена таким образом:
/** * Article контроллер * * @Route("article") */ class ArticleController extends Controller { /** * Выводит на экран список всех статей * * @Route("/", name="article_index") * * @return Response */ public function indexAction() {}
Т.е. indexAction() вызввается по адресу:
Что по факту
Хочу использовать redirect() в другом методе этого же контроллера.
-
При таком варианте пути
return $this->redirect('article/');
в адресной строке высвечивается
http://localhost/article/article/
и выбрасывается NotFoundException
No route found for "GET /article/article/"
- При таком варианте пути
return $this->redirect('/');
в адресной строке высвечивается
http://localhost
и приветствие Symfony(start working). Тожк не годится)
Решение
Работает redirectToRoute(), если передать ему атрибут name Routa, указанный в аннотации, а не сам маршрут:
return $this->redirectToRoute('article_index');
или redirect() с указанием полного адреса сайта:
return $this->redirect('http://localhost/article');
- Log in to post comments
- 7772 reads
vedro-compota
Tue, 09/26/2017 - 17:25
Permalink
редирект на имя маршутра
Cобственно у вас редирект на URL, а можно на имя маршрута:
https://symfony.com/doc/current/controll...
например:
(что кстати правильнее внутри сайта ведь URL (сам маршрут) может смениться, а вот имя всегда его имя при этом можно оставить прежним)
_____________
матфак вгу и остальная классика =)
melisa
Tue, 09/26/2017 - 17:32
Permalink
Изначально использовался redirectToRoute()
в адресной строке путь не меняется(остаётся тот, что ведёт к исполняемому действию) и выбрасывается NotFoundException
в адресной строке путь также не меняется(остаётся тот, что ведёт к исполняемому действию) и выбрасывается исключение
vedro-compota
Tue, 09/26/2017 - 17:52
Permalink
на имя
надо делать редирект на имя маршутра, если на действие index (ваше), то так:
_____________
матфак вгу и остальная классика =)