1

我正在尝试使用奏鸣曲项目中的一些捆绑包来编辑 1:N 关联:

AMediaList可以Media分配许多对象。教义配置是正确的,我的实体MediaAdmin的管理类的配置也是正确的。MediaMediaList 管理员应该为我的媒体嵌入表单并允许在列表中添加/删除项目:

protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper->add('media', 'sonata_type_collection',
            [
                'by_reference' => false,
            ],
            [
                'edit' => 'inline',
                'inline' => 'table'
            ]);
    }

在 symfony 3 中,对诸如“sonata_type_collection”之类的字符串形式类型的支持已被删除。但是,SonataCoreBundle 添加了一些应该重新启用此功能的功能(请参阅文档 3.1)。

不幸的是,这对我不起作用,我得到一个 InvalidArgumentException(无法加载类型“sonata_type_collection”)

  • 我确定FormHelper::registerFormTypeMapping并通过断点SonataCoreBundleSonataAdminBundle调试被调用。
  • 我尝试使用 FQCN 代替(Sonata\CoreBundle\Form\Type\CollectionType)但是奏鸣曲在sonata_type_admin内部使用,当我按下“添加”按钮时失败
  • 它在几天前工作并且失败了,因为我composer update没有改变我的 composer.json 中的任何内容就运行了

那么如何在 Symfony 3.X 中使用这些表单类型呢?是否需要任何额外的配置?

我的 composer.json (不是所有条目,但我认为最相关):

"php": ">=5.5.9",
"doctrine/doctrine-bundle": "^1.6",
"doctrine/orm": "^2.5",
"sonata-project/admin-bundle": "^3.20.1",
"sonata-project/doctrine-orm-admin-bundle": "^3.1",
"symfony/symfony": "3.3.2",
4

1 回答 1

0

我找到了适合我的配置。我minimum-stability在 composer.json 中设置为dev. 将其更改为stable并更新后,它再次起作用。

于 2017-07-30T09:37:57.470 回答