Tag
テーブルには、Category
多対1としてテーブルとの関係があります(多くのタグが1つのカテゴリに関連付けられているか、1つのカテゴリに多くのタグがあります)。
Tag
テーブルからテーブルへの通常の多対1の関係を取得する必要がありますCategory
。Category
これは、テーブル(名前付き)のIDに基づいている必要がありますid_category
。しかし、代わりに私は...VARCHAR(255)
テーブルの列を取得しています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は、外部キーを持つidとしてVARCHAR
ではなく、私に与えます。INTEGER
誰かが理由を知っていますか?この場合、Symfonyに関係を作るように指示
するには
どうすればよいですか?