0

Tagtable 与 table 的关系Category为多对一(许多标签与一个类别相关,或者一个类别有许多标签)。

Tag我应该从 table到 table获得正常的多对一关系Category。它应该基于表中的 ID Category(名为id_category)。但是,相反,我得到...表格中的一VARCHAR(255)Tag

以下是来自 Tag 实体的部分代码:

/**
 * @ORM\Column(nullable=true)
 * @ORM\ManyToOne(targetEntity="Category")
 * @ORM\JoinColumn(name="id_category", referencedColumnName="id_category")
 */
protected $category;

类别实体没有适当的相关“标签”列,因为它是单向关系。无论如何,这id_category是在实体中声明的方式Category(尽管我认为这并不重要):

/**
 * @ORM\Id
 * @ORM\Column(type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id_category;

我通过 Doctrine2 的命令得到的结果update --dump-sql如下:

ALTER TABLE Tag ADD category VARCHAR(255) DEFAULT NULL

Doctrine 给了我VARCHAR,而不是INTEGER作为带有外键的 id。有谁知道为什么?
在这种情况下如何告诉Symfony 建立关系?

4

1 回答 1

0

不要使用@ORM\Column,只使用@ORM\ManyToOne:

/**
 * @ORM\ManyToOne(targetEntity="Category")
 * @ORM\JoinColumn(name="id_category", referencedColumnName="id_category", nullable=true)
 */
protected $category;
于 2012-09-04T15:57:15.323 回答