В Symfony, как я могу использовать помощника url_for в классе? - PullRequest
6 голосов
/ 10 июня 2009

Я создаю URL внутри класса, и я хотел бы иметь возможность изменить маршрутизацию при необходимости позже, просто изменив файл routing.yml.

Если у меня есть маршрут:

userSignup:
  url:   /user/signup
  param: { module: user, action: signup }

Как я могу использовать url_for ('userSignup') в классе для динамического создания URL?

Ответы [ 4 ]

12 голосов
/ 10 июня 2009

Я пробовал это только с 1.2, поэтому я не могу говорить ни о каких предыдущих версиях ...

Из любого вашего класса:

sfContext::getInstance()->getConfiguration()->loadHelpers(array('Url'));

... тогда вы можете продолжить использовать любую из функций, определенных в помощнике по URL.

11 голосов
/ 12 июля 2012

Вам не нужно использовать помощники вида в вашем действии для создания URL:

$this->generateUrl("userSignup");

Метод определен в sfComponent.class.php . Это рекомендуемый способ, а не хакерский обход загрузки помощников вида и их использования.

1 голос
/ 05 августа 2015

вы должны использовать

sfLoader::loadHelpers(array('Url'));
0 голосов
/ 12 июля 2012

Не следует использовать sfContext::getInstance() для получения конфигурации.

// instead of using
sfContext::getInstance()->getConfiguration()->loadHelpers('Url');

// use 
sfApplicationConfiguration::getActive()->loadHelpers(array('Url'));
...