$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?
谢谢。
答案 0 :(得分:0)
我已经做了很多测试以及正确的方法来生成网址" JMSI18nRoutingBundle"使用,如下:
$this->getServiceContainer()->get('router')->generate('ting_user_reset_password', array(), UrlGeneratorInterface::ABSOLUTE_URL);
没有getGenerator()->
这对我来说很好。