2017-09-28 10 views
1

J'ai utilisé Doctrine pour créer un DoctrineModule \ Form \ Element \ ObjectSelect dans mes formulaires. Mais me montre cette erreur: "Aucun gestionnaire d'objets n'a été défini". Je basé dans le guide de Doctrine Module. Je porte une recherche de temps mais je ne peux pas trouver ce qui est faux. Le code:Doctrine form element + erreur zf3 message "Aucun gestionnaire d'objet n'a été défini"

La forme:

<?php 
//..... 
use DoctrineModule\Persistence\ObjectManagerAwareInterface; 
use Doctrine\Common\Persistence\ObjectManager; 
use Zend\Form\Form; 

class SubRubroForm extends Form implements ObjectManagerAwareInterface 
{ 
    private $value_submit; 
    private $objectManager; 

    public function __construct($value_submit) 
    { 
     $this->value_submit=$value_submit; 
     // Define form name 
     parent::__construct('SubRubro-form'); 

     // Set POST method for this form 
     $this->setAttribute('method', 'post'); 
     $this->addElements(); 
     $this->addInputFilter(); 
     $this->init();    
    } 

    public function init() 
    { 
     $this->add([ 
      'type' => 'DoctrineModule\Form\Element\ObjectSelect', 
      'name' => 'rubro', 
      'options' => [ 
       'object_manager' => $this->getObjectManager(), 
       'target_class' => 'Rubros\Entity\Rubro', 
       'property'  => 'nombre', 
      ], 
     ]); 
    } 
// ... add others elements addElements(){} .... 
// ... inputfilters .... 
// ... set and get ObjectManager() interface methods... 

} 

Répondre

0

Ajoutez la méthode init() de la classe père éléments les charges ObjectManager bien. Classe SubRubroForm extends Form implémente ObjectManagerAwareInterface {private $ valeur_submit; private $ objectManager;

public function __construct($value_submit) 
{ 
    $this->value_submit=$value_submit; 
    // Define form name 
    parent::__construct('SubRubro-form'); 

    // Set POST method for this form 
    $this->setAttribute('method', 'post'); 
    $this->addElements(); 
    $this->addInputFilter(); 
    $this->init();    
} 

public function init() 
{ 
    $this->add([ 
     'type' => 'DoctrineModule\Form\Element\ObjectSelect', 
     'name' => 'rubro', 
     'options' => [ 
      'object_manager' => $this->getObjectManager(), 
      'target_class' => 'Rubros\Entity\Rubro', 
      'property'  => 'nombre', 
     ], 
    ]); 
    parent::init(); 
} 
// ... add others elements addElements(){} .... 
// ... inputfilters .... 
// ... set and get ObjectManager() interface methods...