2016-11-11 4 views
0

私は2つのdoctrineエンティティのフィールド間に多対1の関係を追加しようとしています。私はFacebookのフィードと対応するFacebookのIDをリストアップしているFacebookのフィードテーブルを持っています.FbPageLikesのエンティティを持っています。これは、これらのFacebookのフィードの好きな数の行を経時的に記録するテーブルです。なぜdoctrineは私の外部キー制約を拒否していますか?

私が正しく注釈を付けていると信じて、まだ移行しようとしたとき、私はまだこのエラーを参照してください。General error: 1215 Cannot add foreign key constraint

は私の注釈に何か問題はありますか?この教義の移行をどのようにデバッグできますか?

FbPageLikesエンティティ:

/** 
* @var $facebookId 
* 
* @ORM\ManyToOne(targetEntity="Feed", inversedBy="fbPageLikes") 
* @ORM\JoinColumns({ 
* @ORM\JoinColumn(name="facebook_id", referencedColumnName="facebookId", onDelete="CASCADE") 
* }) 
*/ 
private $facebookId; 

フィードエンティティ:

/** 
* @var integer 
* 
* @ORM\Column(name="facebookId", type="bigint", nullable=true) 
*/ 
private $facebookId; 

/** 
* @var \Doctrine\Common\Collections\Collection 
* 
* @ORM\OneToMany(targetEntity="FbPageLikes", mappedBy="facebookId", fetch="EXTRA_LAZY") 
*/ 
private $fbPageLikes; 
+0

このメッセージで確認するもの:最初に参照したテーブルが作成されていることを確認してください。 – Eugene

+0

ありがとうございました。私はチェックして、彼らは確かにそこにいる。 – vaerek

答えて

0

は、このセットアップが失敗した理由はFbPageLikesエンティティであるため、アノテーションでした。 referencedColumnNameフィールドは、対応するエンティティFeedのプライマリキーを参照する必要があります。私の場合はhttp://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/annotations-reference.html#annref-joincolumn

、私が代わりにfacebookId欄に、Feedエンティティのid列を参照するreferencedColumnNameを設定する必要がありました。

関連する問題