如何在奏鸣曲包管理列表视图中包含实体连接

时间:2014-08-15 23:58:15

标签: symfony fosuserbundle sonata-admin

相关代码:

in services.yml

sonata.admin.domain:
        class: MyBundle\AdminBundle\Admin\MyAdmin
        tags:
            - { name: sonata.admin, manager_type: orm, group: "Domains", label: "Domains" }
        arguments:
            - ~
            - MyBundle\ServiceBundle\Entity\MyEntity
            - ~
        calls:
            - [ setTranslationDomain, [MyOtherBundle]]

在我的管理员控制器中:

 protected function configureListFields(ListMapper $listMapper)
    {
        $listMapper
            ->add('domain')
            ->add('user.email')
            ->add('_action', 'actions', array(
                             'actions'  => array(
                                                 'show' => array())));

    }

错误在:

Notice: Undefined index: user

进一步描述问题,我有一个具有user_id列的表,我希望能够在该表的相同列表中包含用户电子邮件地址(使用fos用户包)。我也试过没有运气的自定义查询。提前谢谢

1 个答案:

答案 0 :(得分:0)

这是关于列表视图定义的官方文档:

http://sonata-project.org/bundles/admin/master/doc/reference/action_list.html

http://sonata-project.org/bundles/doctrine-orm-admin/master/doc/reference/list_field_definition.html

如果你的实体中有user_id,我想你的实体是fosUserBundle的覆盖,对吗?

通常你可以直接从列表字段定义访问,如下所示:

->add('user.email') // user is you entity object

否则,如果它是具有user_id的独立实体,则您可能在此实体与拥有fosuserbundle对象的实体之间存在关系,并且在上面的列表字段定义中,您通常应该访问对象电子邮件。