Sonata Admin,内联编辑实体

Posted

技术标签:

【中文标题】Sonata Admin,内联编辑实体【英文标题】:Sonata Admin, edit entity inline 【发布时间】:2014-12-04 04:32:41 【问题描述】:

我正在使用 Sonata Admin,但我对内联版有疑问。

我知道有一个选项->add('adresse', null, array('editable' => true)) 可以直接在表格中编辑所有信息。

但在这种情况下,地址是一个文本字段。例如,如何使用实体字段来做到这一点?示例:

        ->add('agent', 'entity', array(
                  'class' => 'CrmBundle:User',
                  'query_builder' => function(EntityRepository $er) 
                       return $er->createQueryBuilder('u')
                                ->where('u.type = ?1 ')
                                ->groupBy('u.id')
                                ->orderBy('u.id', 'ASC')
                                ->setParameters(array(1 => 'Agent'));
                   
        ))

我需要能够直接在表中更改实体字段。有什么想法吗?

【问题讨论】:

【参考方案1】:

尚不支持内联编辑相关实体字段。您必须创建自定义列表字段模板。在此模板中,您应该放置表单和 javascript 代码。用户编辑字段后,应该向您的自定义控制器发出 ajax 请求,该控制器会将值存储到数据库中。

【讨论】:

以上是关于Sonata Admin,内联编辑实体的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Sonata Admin 编辑视图中自定义实体关联的 SQL 查询

Sonata Admin:添加自定义触发器/动作到列表/编辑动作

Sonata Admin Bundle ACL 不授予编辑权限

有没有办法确定 Sonata\AdminBundle\Admin\Admin::configureFormFields() 中的当前操作(创建或编辑)?

Symfony Sonata Admin 仅将属性显示为只读文本

Symfony / Sonata Admin:编辑表单上的列表表单