我依靠外部api來填充我的表,並且通過這種關係,我可以用更少的查詢處理應用程序上的一些必需的功能。Symfony2 OneToMany雙向引用不是id列
而不是錯誤和警告表和FK創建後使用該命令,但我不知道我是否可以繞過這個錯誤,否則將在未來產生問題。
顯然我可以引用id並且問題會消失,但是如果這是可能的話,現在需要。
我有兩個表:
RARITIES
id
name
...
ITEMS
id
item_rarity
...
而且實體的樣子:
class Rarity
{
...
/**
* @ORM\OneToMany(targetEntity="Item", mappedBy="rarity")
*/
private $items;
public function __construct() {
$this->items = new ArrayCollection();
}
...
}
class Item
{
...
/**
* @ORM\ManyToOne(targetEntity="Rarity", inversedBy="items")
* @ORM\JoinColumn(name="item_rarity", referencedColumnName="name")
**/
private $rarity;
...
}
當我創建或更新架構,它輸出一些錯誤和警告:
[Doctrine\ORM\Tools\ToolsException]
Schema-Tool failed with Error 'An exception occurred while executing 'ALTER TABLE items ADD CONSTRAINT FK_E11EE94D3139CB89 FOREIGN KEY (item_rarity) REFERENCES rarities (name)':
SQLSTATE[HY000]: General error: 1005 Can't create table 'd2a.#sql-4fa_7c' (errno: 150)' while executing DDL: ALTER TABLE items ADD CONSTRAINT FK_E11EE94D3139CB89 FOREIGN KEY (item_rarity) REFERENCES rarities (name)
[Doctrine\DBAL\DBALException]
An exception occurred while executing 'ALTER TABLE items ADD CONSTRAINT K_E11EE94D3139CB89 FOREIGN KEY (item_rarity) REFERENCES rarities (name)':
SQLSTATE[HY000]: General error: 1005 Can't create table 'd2a.#sql-4fa_7c' (errno: 150)
[PDOException]
SQLSTATE[HY000]: General error: 1005 Can't create table 'd2a.#sql-4fa_7c' (errno: 150
謝謝你的建議!
Ty男人,但就像我說的,我知道添加這將解決問題,購買爲什麼表和FK被正確創建,但警告和錯誤出現,爲什麼我想知道。 – ruudy
夥伴,最後你給我一個主意,它的作品! – ruudy
太好了。祝你的項目好運。 – Alex