J'essaie de suivre les conseils des docs de doctrine sur this page - en initialisant un membre de classe avec ArrayCollection. Tout fonctionne bien pour l'exemple donné dans les docs. Je suis en train de le faire avec une classe héritée mais je reçois une erreur disant:doctrine2 Erreur ArrayCollection
Class Doctrine\Common\Collections\ArrayCollection is not a valid entity or mapped super class
classe Héritée:
/**
* @Entity
* @InheritanceType("JOINED")
* @DiscriminatorColumn(name="discr", type="string")
* @DiscriminatorMap({"user" = "App_User", "group" = "App_Group"})
*/
abstract class App_Acl_Role_Abstract implements Zend_Acl_Role_Interface {
/**
* @ManyToOne(targetEntity="App_Acl_Role_Abstract", inversedBy="children", cascade={"persist"})
*/
private $parents;
/**
* @OneToMany(targetEntity="App_Acl_Role_Abstract", mappedBy="parents", cascade={"persist"})
*/
private $children;
public function __construct()
{
$this->parents = new Doctrine\Common\Collections\ArrayCollection();
$this->children = new Doctrine\Common\Collections\ArrayCollection();
}
}
classe Héritant:
/**
* @Entity
* @Table(name="App_User")
*/
class App_User extends App_Acl_Role_Abstract
{
...
}
Lorsque Je déplace le constructeur vers la classe d'héritage tout fonctionne bien. Mais il serait beaucoup plus facile de les avoir dans la classe abstraite héritée. Pourquoi ça ne marche pas? C'est possible?