Tag
table 与 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 建立关系?