В Symfony, как я могу использовать url_for helper в классе?
-
13-09-2019 - |
Вопрос
Я создаю 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'));