私はこのページの教義のドキュメントからのアドバイスに従おうとしています-ArrayCollectionでクラスメンバーを初期化します。ドキュメントに記載されている例では、すべてうまく機能します。継承されたクラスでそれを実行しようとしていますが、次のようなエラーが発生します。
Class Doctrine\Common\Collections\ArrayCollection is not a valid entity or mapped super class
継承されたクラス:
/**
* @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();
}
}
クラスの継承:
/**
* @Entity
* @Table(name="App_User")
*/
class App_User extends App_Acl_Role_Abstract
{
...
}
コンストラクターを継承クラスに移動すると、すべて正常に機能します。しかし、継承された抽象クラスにそれらを含めると、はるかに便利になります。なぜ機能しないのですか?出来ますか?