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
引用了同一个表中的类别。谢谢,您发布的链接很有趣,但它们没有我发布的问题的解决方案。不客气。我正要建议你看一对多,在条令文档上的自我引用,但似乎你自己就知道了。