Вопрос

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

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

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

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

Это было полезно?

Решение

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

$this->generateUrl("userSignup");

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

Другие советы

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

С любого из ваших классов:

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

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

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

sfLoader::loadHelpers(array('Url'));

Вы не должны использовать sfContext::getInstance() чтобы получить конфигурацию.

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

// use 
sfApplicationConfiguration::getActive()->loadHelpers(array('Url'));
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top