Как правильно выполнить перенаправление URL? - PullRequest
0 голосов
/ 05 марта 2011

В классе действия у меня есть этот в конце функции:

$this->redirect("/myproject_dev.php/login/");

, в котором я жестко кодирую имя проекта разработки в URL.конечно, это работает, пока я занимаюсь разработкой, но когда дело доходит до производства, мне нужно это убрать.

Итак, как мне узнать имя проекта ("myproject_dev.php") в коде?так что я могу сделать это:

$this->redirect($myProjectDevName . "login/");

или .. есть ли умный способ справиться с этим?

спасибо.

------ ДОБАВЛЕНИЕ --

Итак, я использовал public_path как предложено.но он возвращает только корневой путь.

Мне интересно, есть ли функция, которая при запуске в режиме разработки:

http://mydomain.com/myproject_dev.php/whatever   

в своем классе действий: $ this-> redirect(public_path ( 'Войти'));и в результате я получу http://mydomain.com/myproject_dev.php/login

, а если я буду работать в производственном режиме: http://mydomain.com/whatever
класс действия не изменится: $ this-> redirect (public_path ('login'));он вернет это: http://mydomain.com/login

или .. как получить имя приложения и имя среды Symfony?

:)

Ответы [ 3 ]

1 голос
/ 05 марта 2011

Вы должны использовать систему маршрутизации Symfony и вызвать правило маршрутизации из вашего routing.yml:

$this->redirect('@login');

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

0 голосов
/ 09 марта 2011

попробуйте вставить это в вашу функцию

$this->redirect("MODULENAME/ACTION");

ex: $this->redirect("pim/admin"); 

это перенаправит вас на действие администратора модуля pim ...

0 голосов
/ 05 марта 2011

вы можете попробовать

 public_path()

http://www.symfony -project.org / апи / 1_4 / UrlHelper # method_public_path

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...