CmfRouting + JMSI8nRouting:如何让它们一起工作?

时间:2014-06-07 07:26:45

标签: symfony url-routing symfony-cmf

我在我的(Sylius)项目中使用JMSI8nRoutingBundle,一切进展顺利。

我刚刚切换到CMFRouting用于我的一些路由(主要是产品),但是当我启用JMS i8n路由时,这些路由无法正常工作,这是我在使用时遇到的错误{{ 1}}:

{{ path(product) }}

如果我禁用JMS i8n路由,那么CMF路由&经典的。

所以我的问题是:是否有一些具体要做的事情来制作JMS i8n路由& CMF路由一起工作?似乎JMS正在接管CMF,而不是一起做链。

奇怪的是,谷歌没有在这个主题上发现任何内容。

提前致谢。

2 个答案:

答案 0 :(得分:2)

问题是JMSi18nBundle如何覆盖默认路由器: https://github.com/schmittjoh/JMSI18nRoutingBundle/issues/73

答案 1 :(得分:1)

以下分支帮助我,让JMSI18nRoutingBundle与Sylius一起工作:

https://github.com/ekyna/JMSI18nRoutingBundle/tree/symfony-cmf

在composer.json中注册自定义存储库:

"repositories": [
{
  "type": "vcs",
  "url": "https://github.com/ekyna/JMSI18nRoutingBundle.git"
}
]

并引用" symfony-cmf"分支在"要求"块

"jms/i18n-routing-bundle": "dev-symfony-cmf"

这应该可以解决问题。

不要忘记在AppKernel.php中注册该包:

new \JMS\I18nRoutingBundle\JMSI18nRoutingBundle(),

并在config.yml中设置路由配置:

jms_i18n_routing:
    default_locale: "de"
    locales: [en, de]
    strategy: prefix

最后运行"作曲家更新"在你的终端上。

更新

要使登录/注销正常工作,您可能希望在防火墙定义中使用Sylius路由。

我更新了#34; main"防火墙用这个" form_login"参数:

form_login:
    provider: sylius_user_provider
    login_path: sylius_user_security_login
    check_path: sylius_user_security_check
    failure_path: sylius_user_security_login
    default_target_path: sylius_homepage
    use_forward:  false
    use_referer: true

这些"退出"设置:

logout:
    path: sylius_user_security_logout
    target: sylius_homepage