symfony – 如何结合DoctrineExtensions中的Translatable和Sluggable?
发布时间:2020-05-24 01:40:46 所属栏目:Java 来源:互联网
导读:我已经安装了 https://github.com/stof/StofDoctrineExtensionsBundle并在Country实体的特定字段上使用Translatable和Sluggable: ...class Country{ ... /** * @GedmoTranslatable * @GedmoSlug(fields={name})
|
我已经安装了 https://github.com/stof/StofDoctrineExtensionsBundle并在Country实体的特定字段上使用Translatable和Sluggable: ...
class Country
{
...
/**
* @GedmoTranslatable
* @GedmoSlug(fields={"name"})
* @ORMColumn(length=255,nullable=false)
*/
private $slug;
对于英语用户,页面的URL应为… / country / france;对于德语用户,页面的URL应为… / land / frankreich. 在一个控制器中,我得到了特定语言的slug,并通过这个特定于语言环境的slug进行过滤,我想要检索一个国家实体. 我在这里或文档中没有找到任何关于如何做到这一点的内容. 感谢有关如何解决这个问题的任何提示! 解决方法刚刚找到了 solution in this blog article.解决方案是使用TranslationWalker的ORM查询提示自动加入转换表,因此您可以按任意翻译字段排序或过滤.这很棒!然后代码看起来像: ...
->createQuery('SELECT...FROM MyFooBundle:Country c WHERE c.slug = :slug...)
->setParameter('slug',$slug)
->setHint(
DoctrineORMQuery::HINT_CUSTOM_OUTPUT_WALKER,'GedmoTranslatableQueryTreeWalkerTranslationWalker'
)
->getSingleResult();
顺便说一下:如果你想使用回退(即如果没有特定的翻译可用,请使用默认的字符串/文本),然后通过setTranslationFallback方法调用(在doctrine_extensions.yml中)为你的gedmo.listener.translatable服务配置它. . (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
