亲子我有一个表“节点”,拥有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