无法通过 ID 访问 parent 个实体属性

Unable to access parent entity attributes by ID

我正在尝试弄清楚为什么我无法访问我的 Category 实体的 parent 实体的 name(或任何属性) .我的视图工作正常并显示 parent 信息以外的所有属性。

我要查找的是 parent 的名称(即 "Interior"),而不是 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);
    }
}

我的 Doctrine 实体映射:

fields:
    parent_id:
        type: integer
        length: 11
        nullable: true

在我的 Twig 模板中,我试图提取 parent 类别的名称,如下所示:

<td>
   {{ category.parent.name }}
</td>

但是,我没有收到任何错误,但也没有收到类别名称。

这是我的 SQL GUI 的简要视图:

table 是分层的。

public function getParent()
{
    return new self($this->parent_id);
}

您在这里所做的是创建一个所有属性均为空白的新类别。查看 symfony and doctrine 文档以了解如何正确创建关系。

我最终通过从我的 ORM 映射中删除 parent_id 并将其替换为以下内容来解决此问题:

manyToOne:
    parent:
        targetEntity: AyrshireMinis\CarBundle\Entity\Category
        inversedBy: children

然后将这些成员变量添加到我的Category实体class:

/**
* @var Category
*/
private $children;

/**
* @var Category
*/
private $parent;