Доктрина не может порождать отношения - PullRequest
2 голосов
/ 27 февраля 2012

Примечание: я уже провел некоторые поиски, прежде чем спрашивать.

Вот моя проблема:

У меня есть две сущности: одна - это канал, а другая - плагин, канал.может иметь много плагинов, ниже приведен код,

Канал:

use Gedmo\Mapping\Annotation as Gedmo; // gedmo annotations

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;

/**
 * Mikay\MikiBundle\Entity\Channel
 *
 * @ORM\Table(name="channels")
 * @ORM\Entity(repositoryClass="Mikay\MikiBundle\Entity\ChannelRepository")
 */
<?php
class Channel
{
  /**     
   * @ORM\OneToMany(targetEntity="Plugin", mappedBy="channel")
   */
  private $plugins;            

Плагин:

 use Doctrine\ORM\Mapping as ORM;

/**
 * Mikay\MikiBundle\Entity\Plugin
 *
 * @ORM\Table(name="plugins")
 * @ORM\Entity(repositoryClass="Mikay\MikiBundle\Entity\PluginRepository")
 */
<?php
class Plugin
{
  /**
   * @ORM\ManyToOne(targetEntity="Channel", inversedBy="plugins")
   * @ORM\JoinColumn(name="channel_id", referencedColumnName="id")
   */
  private $channel;

Я использовал эту команду для обновления базы данных, но она никогдасоздал связь между двумя таблицами.

php app/console doctrine:schema:update --force

Так в чем же проблема, могут ли быть какие-то ошибки конфигурации?

РЕДАКТИРОВАТЬ:

Примечание: не добавлять

@ORM\Column(name="channel_id", type="integer")

это извещение такого рода в сущности Plugin, иначе оно не будет генерировать отношения между двумя таблицами, вот причина моей проблемы.

Ответы [ 2 ]

2 голосов
/ 28 февраля 2012

Я повторю это здесь снова. Не добавляйте

@ORM\Column(name="channel_id", type="integer")

этот тип анонса для свойства, которое ссылается на другую сущность, в моем случае это свойство канала сущности Plugin, или оно не будет генерироватьотношения между двумя таблицами, вот причина моей проблемы.

2 голосов
/ 28 февраля 2012

Вы должны сказать доктрине, что это сущности.

/**
 * @ORM\Entity()
 */
class Channel
{

Вот быстрый способ убедиться, что доктрина может видеть ваши сущности:

php app/console doctrine:mapping:info
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...