我有一个实体类别,其中有一个代码。此代码是内部代码,我们将其翻译成每种语言。例如,想象一下:
Categories:
---- id:1 Code: "Bread"
---- id:2 Code: "Butter"
Run Code Online (Sandbox Code Playgroud)
我有一个带有表单域实体的表单。我想按翻译后的标签订购。
以英语为例,它将显示
Bread
Butter
Run Code Online (Sandbox Code Playgroud)
但是以法语为例,顺序是不同的
Beurre (butter)
Pain (bread)
Run Code Online (Sandbox Code Playgroud)
所以我不能使用实体字段的orderBy。
我有一个手工制作的解决方案,非常脏:我使用带有翻译标签的选择字段
$categories_translated =array();
$categories= $this->em->getRepository('MyRepo')->findAll();
foreach($categories as $category){
$categories_translated[$category->getId()]= $this->translator->trans($category);
}
asort($categories_translated);//sorted
//then later
$builder->add('category','choice',array( 'choices' => $choices_technologies) )
Run Code Online (Sandbox Code Playgroud)
您是否有适当的方法来执行此操作?
小智 0
您的方法是通过基于文件的翻译处理此问题的最佳(也是我认为唯一)方法。通过数据库相关的翻译确实有更多的可能性来解决此类问题。例如: https: //github.com/l3pp4rd/DoctrineExtensions/blob/master/doc/symfony2.md
| 归档时间: |
|
| 查看次数: |
482 次 |
| 最近记录: |