Symfony - получить модуль URL-ключа - PullRequest
0 голосов
/ 28 января 2011

Я использую общий набор javascript для нескольких модулей Symfony. Я хотел бы вывести текущий URL-ключ модуля в виде переменной javascript, чтобы javascript мог использовать его для создания URL-адресов для различных вызовов AJAX. Хотя я не могу найти, где его взять.

$sf_context->getModuleName();

возвращает имя модуля, но не то, как оно отображается в URL. Я понял, что могу разобрать имя модуля из window.location, но это не только кажется немного грубым, но скоро у меня будет случай, когда я создаю URL для другого модуля, чем тот, который генерировал текущую страницу. *

Как получить URL-ключ для текущего (или заданного) модуля? Конечно, это сопоставление существует для фронт-контроллера.

Ответы [ 2 ]

1 голос
/ 28 января 2011

Чтобы получить точное значение, как оно было написано в URL, вы можете использовать пользовательские маршруты .В Symfony вы можете создать правило маршрутизации с именем модуля в качестве переменной в URL.Эта переменная с именем, что вы хотите, будет доступна в вашем действии.

Например (app/*yourAppName*/config/routing.yml):

the_name_of_your_route:
  url:    thisIsAUrl/:variableYouWantWithWhateverCase
  param:  { module: yourModuleName, action: yourActionName }

В вашем параметре url: могут быть даже символы regEx и символы подстановкиесли хотите.

Так что теперь, когда вы находитесь в функции executeYourActionName, переменная с именем variableYouWantWithWhateverCase будет установлена ​​в запросе точно так, как она была напечатана в URL.

Надеюсь, этопомогает.

0 голосов
/ 29 января 2011

Вы можете получить значение URL текущего модуля с помощью:

$sf_params->get('module');  // in templates

и

$request->getParameter('module');       // either this
$this->getRequestParameter('module');   // or this in the actions

и для создания URL-адресов для других модулей я могу использовать url_for () , хотя я не мог получить значение url-модуля отдельно с помощью этого метода (он генерирует полный URL-адрес).

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