2016-12-09 2 views
0

Je suis en train de créer une application de test en utilisant symfony 3.1 et en utilisant Propel 2 et a une erreur Impossible de charger le type "modèle"Symfony 3.1: Impossible de charger le modèle de type

intérieur de mon formulaire

$builder->add('province', 'model', array(
     'class' => 'Test\MainBundle\Model\Province', 
     'query' => ProvinceQuery::create() 
      ->orderByName() 
    )); 

AppKernel

public function registerBundles() 
{ 
    $bundles = [ 
     new Propel\Bundle\PropelBundle\PropelBundle(), 
     .... 

erreur: Please see the error message

+0

Pouvez-vous ajouter plus de détails? Message d'erreur complet par exemple;) Je travaille avec Propel 1.x mais la syntaxe semble être la même et mon code est similaire au vôtre. – zelazowy

+0

Il semble que Class Propel \ Bundle \ PropelBundle \ Formule \ ChoiceList \ ModelChoiceList étend Symfony \ Component \ Form \ Extension \ Core \ ChoixList \ ObjectChoiceList qui a été supprimé en faveur de Symfony \ Component \ Form \ ChoiceList \ ArrayChoiceList dans Symfony3. Donc, je l'inclue manuellement utilisez Propel \ Bundle \ PropelBundle \ Form \ Type \ ModelType; Cela semble fonctionner bien maintenant ... –

Répondre

0

Les noms de types ont été supprimés dans Symfony3. Au lieu de référencer les types par nom, vous devez les référencer par leur nom de classe pleinement qualifié (FQCN) à la place. Vous devez déclarer votre formulaire comme ceci:

$builder->add('province', ModelType::class, array(
    'class' => 'Test\MainBundle\Model\Province', 
    'query' => ProvinceQuery::create() 
     ->orderByName() 
)); 
+1

Merci @panche nous avons une solution exacte .. ^^ –