gpt4 book ai didi

symfony - 如何结合 DoctrineExtensions 中的 Translatable 和 Sluggable?

转载 作者:行者123 更新时间:2023-12-03 23:16:43 26 4
gpt4 key购买 nike

我已安装 https://github.com/stof/StofDoctrineExtensionsBundle并在 Country 实体的特定字段上同时使用 Translatable 和 Sluggable:

...
class Country
{
...
/**
* @Gedmo\Translatable
* @Gedmo\Slug(fields={"name"})
* @ORM\Column(length=255, nullable=false)
*/
private $slug;

页面的 URL 对于英语用户应该是 .../country/france,对于德国用户应该是 .../land/frankreich。

在 Controller 中,我获得了特定语言的 slug,并通过这个特定于语言环境的 slug 进行过滤,我想检索一个国家实体。

我没有在这里或文档中找到任何关于如何做到这一点的内容。

感谢您提供有关如何解决该问题的任何提示!

最佳答案

刚刚找到solution in this blog article .解决方案是使用 TranslationWalker 的 ORM 查询提示自动加入翻译表,这样您就可以按任何翻译字段排序或过滤。这很棒!

代码如下所示:

...
->createQuery('SELECT...FROM MyFooBundle:Country c WHERE c.slug = :slug...)
->setParameter('slug', $slug)
->setHint(
\Doctrine\ORM\Query::HINT_CUSTOM_OUTPUT_WALKER,
'Gedmo\\Translatable\\Query\\TreeWalker\\TranslationWalker'
)
->getSingleResult();

顺便说一句:如果您想使用回退(即如果没有特定的翻译可用,请采用默认的字符串/文本),然后只需通过 setTranslationFallback 方法调用(在 dotric_extensions.yml 中)为您的 gedmo.listener.translatable 服务配置它.

关于symfony - 如何结合 DoctrineExtensions 中的 Translatable 和 Sluggable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14651738/

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