2017-07-29 2 views
1

Je suis en train d'utiliser des faisceaux de projet sonate pour l'édition d'un 1: association N:FormTypeMapping ne fonctionne pas avec SonataCoreBundle

Un MediaList peut avoir plusieurs Media objets assignés. La configuration de la doctrine est correcte, de même que la configuration de MediaAdmin qui est la classe d'administration pour mon entité Media. L'administrateur MediaList devrait intégrer le formulaire pour mes médias et à permettre l'ajout/suppression d'éléments à la liste:

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

Symfony 3, le support pour formtypes à cordes tels que « sonata_type_collection » est tombé. Cependant, le SonataCoreBundle ajoute certaines fonctionnalités qui devraient réactiver cette fonctionnalité (voir documentation 3.1).

Malheureusement, cela ne fonctionne pas pour moi et je reçois un InvalidArgumentException (Impossible de charger le type « sonata_type_collection »)

  • J'ai fait FormHelper::registerFormTypeMapping que dans SonataCoreBundle et est appelée avec un point d'arrêt et le débogage.
  • J'ai essayé d'utiliser le FQCN à la place (Sonata\CoreBundle\Form\Type\CollectionType) mais sonate utilise alors sonata_type_admin interne qui échoue lorsque j'appuie sur le bouton
  • Il a travaillé il y a quelques jours « ajouter » et ne depuis que je courais composer update sans changer quoi que ce soit dans mon compositeur. json

Alors, comment utiliser ces types de formulaire dans Symfony 3.X? Y at-il une config supplémentaire nécessaire?

Mon composer.json (pas toutes les entrées, mais je pense que le plus pertinent):

"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", 

Répondre

0

J'ai trouvé une configuration qui fonctionne pour moi. J'avais minimum-stability dans mon composer.json réglé à dev. Après l'avoir modifié à stable et mis à jour, il fonctionne à nouveau.