奏鸣曲管理员:嵌套的sonata_type_collection错误:无法获取身份

时间:2017-11-08 19:11:02

标签: symfony sonata-admin

如果我有一个带有sonata_type_collection的Admin类,并且该集合的关联管理员有另一个sonata_type_collection,则尝试添加元素会导致以下500错误:

Could not get element id from s5a033b8528778_proposals_0_services Failing part: services

重现的步骤

class NegotiationAdmin extends Admin {

    protected function configureFormFields(FormMapper $formMapper) {
        $formMapper
                 ->add('proposals', 'sonata_type_collection', [
                    'required' => false,
                    'by_reference' => false,
                    'label' => 'Propuestas',
                    ], [
                        'edit' => 'inline',
                        'inline' => 'standard'
                    ]
                )
class ProposalAdmin extends Admin {

    protected function configureFormFields(FormMapper $formMapper) {
        $formMapper
            ->with('Servicios')
                ->add('services', 'sonata_type_collection', [
                    'required' => false,
                    'by_reference' => false,
                    'label' => 'Servicios ofrecidos',
                    ], [
                        'edit' => 'inline',
                        'inline' => 'standard'
                    ]
                )

预期结果

为嵌入NegotiationAdmin的ProposalAdmin中的字段服务添加新元素行

example

点击" Agregar nuevo"按下" servicios ofrecidos"使错误发生。

实际结果

无法从s5a033b8528778_proposals_0_services获取元素ID失败的部分:服务

我认为问题可能出在DoctrineORMAdmin中的edit_orm_association_script.html.twig内,这会产生错误的追加网址:

http://dev.aupadb.com:8888/app_dev.php/admin/core/append-form-field-element?code=admin.business.negotiation&elementId=s5a033b8528778_proposals_0_services&objectId=8&uniqid=s5a033b8528778

因为我认为代码应该是admin.business.proposal而不是父表单的id。但我不知道索纳塔如何处理这个问题。

0 个答案:

没有答案