没有为 Doctrine\ORM\PersistentCollection 类定义实体管理器

Van*_*son 6 symfony doctrine-orm sonata-admin symfony4

我正在使用Symfony 4.1SonataAdminBundle 3.36.

\n\n

当我设置关系字段调用标签时出现此ModelType::class错误ManyToMany

\n\n
\n

没有为类 Doctrine\\ORM\\PersistentCollection 定义实体管理器

\n
\n\n

我也无法使用sonata_type_modelor sonata_type_model_list

\n\n

src/Admin/CategoryAdmin.php

\n\n
namespace App\\Admin;\n\nuse Sonata\\AdminBundle\\Admin\\AbstractAdmin;\nuse Sonata\\AdminBundle\\Datagrid\\ListMapper;\nuse Sonata\\AdminBundle\\Datagrid\\DatagridMapper;\nuse Sonata\\AdminBundle\\Form\\FormMapper;\nuse Symfony\\Component\\Form\\Extension\\Core\\Type\\TextType;\nuse Symfony\\Component\\Form\\Extension\\Core\\Type\\EmailType;\nuse Symfony\\Component\\Form\\Extension\\Core\\Type\\TextareaType;\nuse Symfony\\Component\\Form\\Extension\\Core\\Type\\CheckboxType;\n\nuse Symfony\\Bridge\\Doctrine\\Form\\Type\\EntityType;\nuse Sonata\\AdminBundle\\Form\\Type\\ModelType;\nuse Sonata\\AdminBundle\\Form\\Type\\ModelListType;\n\n\nclass FactureAdmin extends AbstractAdmin\n{\n    protected $datagridValues = [\n\n        // display the first page (default = 1)\n        '_page' => 1,\n\n        // reverse order (default = 'ASC')\n        '_sort_order' => 'DESC',\n\n        // name of the ordered field (default = the model's id field, if any)\n        '_sort_by' => 'dateIn',\n    ];\n\n    protected function configureFormFields(FormMapper $formMapper)\n    {\n        $formMapper\n            ->tab('Facture')\n                ->with('Infos G\xc3\xa9n\xc3\xa9rales', ['class' => 'col-md-8'])\n                    ->add('title', TextType::class, array('label' => 'Libell\xc3\xa9'))\n                    ->add('slug', TextType::class, array('label' => 'Slug', 'required' => false))\n                    // ->add('status')\n                    ->add('notice', TextareaType::class, array('label' => 'Remarques', 'required' => false))\n                ->end()\n                ->with('Traitement', ['class' => 'col-md-4'])\n                    ->add('user', EntityType::class, [\n                        'class' => User::class,\n                        'choice_label' => 'username',\n                        'label' => 'Charg\xc3\xa9',\n                    ])\n                    ->add('tags', ModelType::class, [\n                        'attr' => [\n                            'expanded' => true\n                        ]\n                    ])\n                    // ->add('tags', 'sonata_type_model', array('expanded' => true, 'multiple' => true))\n                    ->add('duration', null, array('label' => 'Dur\xc3\xa9e (Nombre de jours)', 'required' => false))\n                    ->add('status',  CheckboxType::class, array('required' => false, 'label' => 'Statut (Pay\xc3\xa9e/Non pay\xc3\xa9e)'), array('transform' => true))\n                    ->add('active')\n                ->end()\n            ->end()\n            ->tab('Prestataire')\n                ->with('Identit\xc3\xa9', ['class' => 'col-md-6'])\n                    // ->add('status')\n                    ->add('prestataire', EntityType::class, [\n                        'class' => Prestataire::class,\n                        'choice_label' => 'name',\n                        // 'label' => 'S\xc3\xa9lectionnez le prestataire',\n                    ])\n                    ->add('providerName', TextType::class, array('label' => 'Nom repr\xc3\xa9sentant'))\n                    ->add('providerPhone', TextType::class, array('label' => 'Num\xc3\xa9ro repr\xc3\xa9sentant', 'required' => false))\n                    ->add('providerEmail', EmailType::class, array('label' => 'Email repr\xc3\xa9sentant', 'required' => false))\n                ->end()\n            ->end()\n            ->tab('Media')\n                ->with('Num\xc3\xa9risation', ['class' => 'col-md-8 col-md-offset-0', 'description' => 'Veuillez uploader la facture num\xc3\xa9ris\xc3\xa9e'])\n                    // ->add('status')\n                    ->add('billScan', ModelListType::class)\n                ->end()\n            ->end()\n        ;\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

}

\n

cez*_*zar 12

'multiple' => true对我来说,在我添加到以下内容后它就起作用了ModelType::class

->add('tags', ModelType::class, [
    'multiple' => true,
    // your other options
])
Run Code Online (Sandbox Code Playgroud)

之后表格就正确显示了。