Symfony 无法按ID访问父实体属性
我正在试图找出为什么我无法访问我的Symfony 无法按ID访问父实体属性,symfony,orm,doctrine-orm,doctrine,twig,Symfony,Orm,Doctrine Orm,Doctrine,Twig,我正在试图找出为什么我无法访问我的类别实体的父实体的名称(或任何属性)。“我的视图”工作正常,并显示除父信息以外的所有属性 我要找的是家长的名字(即“内饰”),而不是ID。但我似乎无法访问它 namespace AyrshireMinis\CarBundle\Entity; class Category { /** * @var integer */ protected $id; /** * @var integer */
类别
实体的父实体的名称(或任何属性)。“我的视图”工作正常,并显示除父信息以外的所有属性
我要找的是家长的名字(即“内饰”),而不是ID。但我似乎无法访问它
namespace AyrshireMinis\CarBundle\Entity;
class Category
{
/**
* @var integer
*/
protected $id;
/**
* @var integer
*/
protected $parent_id;
/**
* @var Category
*/
protected $parent;
public function __construct() {}
/**
* @return int
*/
public function getParentId()
{
return $this->parent_id;
}
public function getParent()
{
return new self($this->parent_id);
}
}
我的条令实体映射:
fields:
parent_id:
type: integer
length: 11
nullable: true
在我的小树枝模板中,我试图像这样拉出父类别的名称:
<td>
{{ category.parent.name }}
</td>
{{category.parent.name}
然而,我没有得到任何错误,但也没有类别名称
这是我的SQL GUI的简要视图:
该表是分层的
public function getParent()
{
return new self($this->parent_id);
}
您在这里所做的是创建一个所有属性都为空的新类别。请查看和文档,了解如何正确创建关系。我最终解决了这个问题,从我的ORM映射中删除了
父id
,并将其替换为:
manyToOne:
parent:
targetEntity: AyrshireMinis\CarBundle\Entity\Category
inversedBy: children
然后将这些成员变量添加到我的类别
实体类:
/**
* @var Category
*/
private $children;
/**
* @var Category
*/
private $parent;
好啊我正在读那一页,有没有一个例子可以说明我在做什么?经典的“类别和产品”并不真正符合我的需要,因为子类别的
parent\u id
引用了同一个表中的类别。谢谢,您发布的链接很有趣,但它们没有我发布的问题的解决方案。不客气。我正要建议你看一对多,在条令文档上的自我引用,但似乎你自己就知道了。