Errore di Doctrine2 ArrayCollection
-
02-10-2019 - |
Domanda
Sto cercando di seguire il consiglio dalla documentazione dottrina sulla questa pagina - inizializzazione un membro della classe con l'ArrayCollection. Tutto funziona bene per l'esempio dato nella documentazione. Sto cercando di farlo con una classe ereditata, ma ottenere un errore che dice:
Class Doctrine\Common\Collections\ArrayCollection is not a valid entity or mapped super class
classe ereditata:
/**
* @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 che eredita:
/**
* @Entity
* @Table(name="App_User")
*/
class App_User extends App_Acl_Role_Abstract
{
...
}
Quando sposto il costruttore della classe che eredita funziona tutto bene. Ma sarebbe molto più ordinato di averli nella classe astratta ereditata. Perché non funziona? E 'possibile?
Soluzione
Il mio male. Ho farcito la mappatura. Questa è la mappatura Ora sto utilizzando:
/**
* @ManyToMany(targetEntity="App_Acl_Role_Abstract", cascade={"persist"})
* @JoinTable(name="role_parents",
* joinColumns={@JoinColumn(name="role_id", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="parent_id", referencedColumnName="id", unique=true)}
* )
*/
private $parents;
/**
* @ManyToMany(targetEntity="App_Acl_Role_Abstract", cascade={"persist"})
* @JoinTable(name="role_children",
* joinColumns={@JoinColumn(name="role_id", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="child_id", referencedColumnName="id", unique=true)}
* )
*/
private $children;
Un ruolo dovrebbe essere in grado di avere molti genitori e molti bambini
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow