2015-04-08 3 views
-1

Я пытаюсь выяснить, почему я не могу получить доступ к имени (или любому атрибуту) родительского объекта моего объекта . Мое представление отлично работает и отображает все атрибуты, отличные от родительской.Не удается получить доступ к атрибутам родительских сущностей по 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 

В моем шаблоне Twig я пытаюсь вытащить имя родительской категории как это:

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

Однако, я не получаю ошибку, но нет названия категории.

Это краткое представление моего SQL GUI:

enter image description here

Таблица иерархическая.

ответ

0

Я в конечном итоге решения, удалив parent_id из моего отображения ОРМ и заменить его следующим образом:

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

Затем добавили эти переменные члены моего класса Category объекта:

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

/** 
* @var Category 
*/ 
private $parent; 
2
public function getParent() 
{ 
    return new self($this->parent_id); 
} 

Что вы здесь делаете, это создание новой категории со всеми свойствами. Взгляните на документацию symfony и doctrine, чтобы узнать, как правильно создавать отношения.

+0

OK. Я читаю эту страницу только сейчас, есть ли пример того, что я пытаюсь сделать? Классическая «категория и продукт» не соответствует моим потребностям, так как «parent_id» дочерней категории ссылается на категорию в той же таблице. – crmpicco

+0

Спасибо, ссылки, которые вы опубликовали, были интересными, но у них не было решения вопроса, который я разместил. – crmpicco

+1

Добро пожаловать. Я собирался предложить вам взглянуть на «Кого-ко-многим», «Саморегуляция» в документации по доктрине, но, похоже, вы сами это поняли. –