当JMSI18nRoutingBundle正在使用时,我无法使用路由器服务生成URL - Symfony 2.7

时间:2016-06-27 12:40:23

标签: symfony routing

$this->getServiceContainer()->get('router')->getGenerator()->generate('ting_user_reset_password', array(), UrlGeneratorInterface::ABSOLUTE_URL);

当我尝试使用路由名router生成具有ting_user_reset_password服务的URL时,会发生异常,因为使用JMSI18nRoutingBundle时路由名称不存在。

 /**
 * @Route("/reset-password", name="ting_user_reset_password")
 * @Template()
 */
public function resetPasswordAction(){

}

JMSI18nRoutingBundle创建以下路径:

us_US_RG_ting_user_reset_password
de_DE_RG_ting_user_reset_password
es_ES_RG_ting_user_reset_password
...

如果为此路由禁用JMSI18nRoutingBundle,则路由器服务正常工作:

 /**
 * @Route("/reset-password", name="ting_user_reset_password", options={"i18n" = false})
 * @Template()
 */
public function resetPasswordAction(){

}

如何通过指定路由名称来获取使用路由器服务的URL?

谢谢。

1 个答案:

答案 0 :(得分:0)

我已经做了很多测试以及正确的方法来生成网址" JMSI18nRoutingBundle"使用,如下:

$this->getServiceContainer()->get('router')->generate('ting_user_reset_password', array(), UrlGeneratorInterface::ABSOLUTE_URL);

没有getGenerator()->

这对我来说很好。