gpt4 book ai didi

symfony - Symfony 中的自定义 i18n 路由

转载 作者:行者123 更新时间:2023-12-04 20:46:37 24 4
gpt4 key购买 nike

我正在使用 JMS\I18nRoutingBundle , Gedmo\TranslatableGedmo\Sluggable .具有默认位置的路由也适用,但其他语言环境无需翻译 slug 即可工作。我的 i18n 路由有以下设置:

# Doctrine extensions
stof_doctrine_extensions:
default_locale: %locale%
translation_fallback: true
orm:
default:
#…
sluggable: true
translatable: true
loggable: false
#…

jms_i18n_routing:
default_locale: cs_CZ
locales: [cs_CZ, en_US]
strategy: custom
hosts:
cs_CZ: example.cz
en_US: example.com
redirect_to_host: true

当我设置这样的路线时:

hw_category:
pattern: /category/{slug}
defaults: { _controller: AcmeSiteBundle:Category:detail }

/**
* @Template
*/
public function detailAction(Category $category)
{}

这条路线有效 example.cz/category/slug-in-czech example.com/category/slug-in-czech
但我想找工作 example.com/category/slug-in-english抛出 404 异常 object not found .

最佳答案

正如我所看到的,您正在使用 ParamConverter 自动获取您的类别。

slug-in-english是您数据库中的现有 slug,但学说拒绝获取它。

您可能没有 可翻译监听器 那时添加到您的 EntityManager 中。

示例 :

$translatableListener = new \Gedmo\Translatable\TranslationListener();
$translatableListener->setTranslatableLocale('en_us');
$em->addEventSubscriber($translatableListener);

如果您使用的是 StofDoctrineExtensionsBundle :
stof_doctrine_extensions:
default_locale: en_US
orm:
default:
# ...
translatable: true

关于symfony - Symfony 中的自定义 i18n 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17059980/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com