親子我有一個表「節點」,擁有ID,PARENT_ID等等...Symfony的原則 - 不工作
/**
* Node
*
* @ORM\Table(name="nodes", indexes={@ORM\Index(name="parent", columns={"parent_id"}), @ORM\Index(name="path", columns={"path"})})
* @ORM\Entity
*/
class Node
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var integer
*
* @ORM\Column(name="parent_id", type="integer", nullable=true)
*/
private $parentId;
...
}
現在我想建立親子relationsship(PARENT_ID是同一個表的id的外鍵)。基於對關係(http://symfony.com/doc/current/book/doctrine.html#entity-relationships-associations)symfony的食譜比如我試圖創建它:
/**
* @ORM\OneToMany(targetEntity="Node", mappedBy="parent")
*/
protected $children;
/**
* @ORM\ManyToOne(targetEntity="Node", inversedBy="children")
* @ORM\JoinColumn(name="parent_id", referencedColumnName="id")
*/
protected $parent;
public function __construct()
{
$this->children = new ArrayCollection();
}
我的第一個問題是,該命令:
php app/console doctrine:generate:entities AppBundle
並沒有給父母的getter和setter和兒童(沒有錯誤信息,只是正常的「生成...」消息)
所以我自己創造的getter和setter方法:
/**
* @return mixed
*/
public function getParent() {
return $this->parent;
}
/**
* @param mixed $parent
*/
public function setParent($parent) {
$this->parent = $parent;
}
/**
* @return mixed
*/
public function getChildren() {
return $this->children;
}
/**
* @param mixed $children
*/
public function setChildren($children) {
$this->children = $children;
}
但這似乎不起作用。我不能獲取例如節點的父或與孩子們:
$node->getParent();
$node->getChildren();
兩個命令retun空,但數據是正確的。該代碼甚至沒有試圖查詢父母或孩子。
你已經看過日誌和分析器輸出了嗎? – chapay
是的。這就是命令行輸出和日誌的輸出:http://pastebin.com/mJU3Fp7h – bernhardh
而剖析器只顯示我1查詢(查詢獲取$節點本身)和沒有其他查詢來獲取$ node-> getParent ()或$ node-> getChildren()。 – bernhardh