实施symfony 4多语言路由的最佳方法是什么?

时间:2018-11-15 09:47:37

标签: php routing url-routing multilingual symfony4

我正在开发一个基于Symfony 4组件(而不是整个框架)的网站。我想知道用Symfony 4实施多语言路由的最佳实践是什么。 就目前而言,我正在像这样使用PHP路由实现:

$routes->add('product_show', new Routing\Route('/{_locale}/{shop_slug}/{product_slug}',
    array(
        '_controller' => 'product_controller::show'
    ),
    array(
        '_locale' => implode("|", array('en', 'fr', 'de')),
        'shop_slug' => implode("|", array('shop', 'boutique', 'geschaft', 'winkel'))
    )
));

但是在完成工作的同时,它不允许我专门将shop_slug'shop'与'en'语言环境链接。以下所有URL在此路由中均有效(用任何product_slug替换...):

  • / en / shop / ...->成功
  • / en / geschaft / ...->成功
  • / en / boutique / ...->成功
  • / de / shop / ...->成功
  • / de / geschaft / ...->成功
  • / de / boutique / ...->成功
  • 等...

我想匹配如下:

  • / en / shop / ...->成功
  • / de / geschaft / ...->成功
  • / fr / boutique / ...->成功
  • / en / geschaft / ...-> 404
  • / fr / geschaft / ...-> 404
  • / zh-cn / boutique / ...-> 404
  • 等...

布线是否完全可行,还是我必须在控制器中使错误的组合无效?

0 个答案:

没有答案