在null上调用成员函数getAssociationAdmin()

时间:2018-07-12 06:52:32

标签: symfony sonata-admin

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

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

在Sonata创建表单中,单击添加新后,它可以正常工作。但是我需要基于创建和编辑来自定义表单字段。因此,当我将代码更改为

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 ... 的方法,它会在错误上抛出对成员函数getAssociationAdmin()的调用错误。

我的问题是,当$ formMapper对于创建和编辑而言是通用的时,添加新按钮可用于一对多集合类型,而对于为创建和编辑表单定制了$ formMapper时,则不起作用

有人有建议或解决方案吗?预先感谢。

0 个答案:

没有答案