首页 文章

Symfony2 - 对于doctrine_orm_class字段,Sonata Datagrid过滤器运算符转换失败

提问于
浏览
3

在我的Symfony项目(2.5.7)中,我使用了Sonata Admin Bundle 2.3 . 在Admin类中,我指定了我的DataGridForm,如下所示:

protected function configureDatagridFilters(DatagridMapper $datagrid)    
{    
$datagrid    
->add('name')    
->add('created_by_user');    
}

其中 name 是文本, created_by_user 是与用户类的一对多关系 . 因此,我有漂亮的过滤器形式,但 created_by_user 字段的运算符,即label_type_equals和label_type_not_equals,不会被翻译 . 为其他字段提供翻译: name :label_type_contains,label_type_not_contains,label_type_equals,这很好 .

在我的app / config / config.yml中我设置:

framework:    
   translator: { fallback: "pl" }

翻译由SonataAdminBundle在SonataAdminBundle.pl.xliff中提供,位于vendor / sonata-project / admin-bundle / Resources / translations中 .

翻译任何其他标签 . 只有连接到doctrine_orm_class类型的那些不是 .

请给我一些解决这个问题的想法 . 谢谢 .

2 回答

  • 0

    SonataAdminBundle的翻译文件适用于"internal global"消息 .

    您可以将您的翻译添加到您的默认文件中,该文件应位于Resources / translations / messages.pl.yml文件中以添加翻译 .

    但推荐的方法是为一个包甚至一个管理文件创建一个单独的文件:https://sonata-project.org/bundles/admin/2-3/doc/reference/getting_started.html#step-3-create-an-admin-service

    使用TranslationDomain,您可以添加一个全局文件,例如"YourBundle.pl.yml"或"MyAdmin.pl.yml":

    # Acme/DemoBundle/Resources/config/admin.yml
    services:
        sonata.admin.post:
            class: Acme\DemoBundle\Admin\PostAdmin
            tags:
                - { name: sonata.admin, manager_type: orm, group: "Content", label: "Post" }
            arguments:
                - ~
                - Acme\DemoBundle\Entity\Post
                - ~
            calls:
                - [ setTranslationDomain, [AcmeDemoBundle]]
    
  • 0

    当我升级包时,发生了丢失的翻译 . 我升级到SonataAdminBundle 2.3.3,但我不太确定这是解决方案 . 然而,我无法重复这个问题 .

相关问题