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に関係を作るように指示
するには
どうすればよいですか?