首页 > 解决方案 > 在 null 上调用成员函数 getAssociationAdmin()

问题描述

在我的管理类中,我有一个一对多字段用作 CollectionType。

protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
            ->add('title', null, ['required' => true])
            ->add('options', CollectionType::class, [], [
                    'edit' => 'inline',
                    'inline' => 'table',
                    'sortable' => 'position',
             ]);
} 

在 Sonata 创建表单中,单击Add new时它工作正常。但我需要根据创建和编辑自定义表单字段。因此,当我将代码更改为时,

protected function configureFormFields(FormMapper $formMapper)
{
    if ($this->isCurrentRoute('create')) {
        $formMapper
            ->add('title', null, ['required' => true])
            ->add('options', CollectionType::class, [], [
                    'edit' => 'inline',
                    'inline' => 'table',
                    'sortable' => 'position',
             ]);
    }

    if ($this->isCurrentRoute('edit')) {
        $formMapper
            ->add('title', null, ['disabled' => true])
            ->add('options', CollectionType::class, [], [
                    'edit' => 'inline',
                    'inline' => 'table',
                    'sortable' => 'position',
             ]);
    }
}

添加新的在创建表单中不起作用。它在浏览器的网络调试中找到名为append-form-field-element?code=admin...的方法的 null 错误时调用成员函数 getAssociationAdmin() 。

我的问题是,当 $formMapper 对创建和编辑都很常见时,为一对多集合类型添加新按钮有效,但在为创建和编辑表单自定义 $formMapper 时不起作用。

有没有人有建议或解决方案?提前致谢。

标签: symfonysonata-admin

解决方案


推荐阅读