2013-07-15 4 views
3

У меня есть простая таблица компании с отношениями:отношения в одной таблице

id name  parentId 
1  Company1 0 
2  Company2 1 
3  Company3 1 
4  Company4 3 

Как я могу писать Doctrine аннотацию, которые относятся записи в этой таблице?

ответ

5

Кажется, что ваши сущности - это только Компания, каждая компания имеет имя и связана с другой компанией с отношением ManyToOne.

Ваше лицо компании должно выглядеть примерно так:

/** 
* Company 
* 
* @ORM\Table() 
* @ORM\Entity 
*/ 
class Company { 
    /** 
    * @var integer 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

    /** 
    * @var string 
    * @ORM\Column(name="name", type="string", length=100) 
    */ 
    protected $name; 

    /** 
    * @ORM\ManyToOne(targetEntity="Company") 
    * @ORM\JoinColumn(name="parentId", referencedColumnName="id") 
    */ 
    protected $parent; 
} 

Для базового класса, вам следует использовать php app/console doctrine:generate:entity, который будет делать всю работу за вас. Вам просто нужно добавить родительское отношение вручную.

Вы должны взглянуть на книгу Симфония на эту тему: http://symfony.com/doc/current/book/doctrine.html.

отображение конфигурация

Все ассоциация объяснить документы Доктрины в: http://docs.doctrine-project.org/en/2.0.x/reference/association-mapping.html

+0

Спасибо, я написал то же самое, во время ожидания ответа. – Barif

Смежные вопросы