0
1対多の関係を維持するときにDoctrineからエラーが発生します。私はここで同様の質問を見たことがあるが、答えは役に立たない。ここで1対多でDoctrine ArrayCollectionがエラーをスローする
は誤りです:
<b>Fatal error</b>: Uncaught exception 'Doctrine\ORM\ORMInvalidArgumentException' with message 'Expected value of type "Doctrine\Common\Collections\Collection|array" for association field "Entities\Scripts#$ScriptsVersions", got "Entities\ScriptsVersions" instead.' in H:\SERVER\htdocs\10pages\www\php\Vendors\doctrine\orm\lib\Doctrine\ORM\ORMInvalidArgumentException.php:206
は定義:
/**
* @OneToMany(targetEntity="Scripts", mappedBy="ScriptsVersions",cascade={ "persist","remove"})
**/
protected $ScriptsVersions;
コンストラクタ:
public function __construct() {
$this->ScriptsVersions = new \Doctrine\Common\Collections\ArrayCollection();
}
セッター:
public function setScriptsVersions(ScriptsVersions $ScriptsVersions){
if(!$this->ScriptsVersions->contains($ScriptsVersions)){
$this->ScriptsVersions[] = $ScriptsVersions;
$ScriptsVersions->setScripts($this);
}
}
私はの$ this - のクラスをダンプする場合は
> ScriptsVersionsがそれを割り当てた後、私はコメントで述べたように
「定義」の下に投稿したコードは、 'Scripts'エンティティのコードですか?もしそうなら、何かが間違っています - 'targetEntity'は、関連が定義されているエンティティと同じであってはなりません。あなたが協会の両面を投稿して助けになればいいですか? – Will
ああ!あなたは、絶対に正しい。これがエラーです。誤ってtargetEntityとmappedByを切り替えただけで、MetaDataからテーブルを作成する段階で不平を言うことはありませんでしたが、後でこのエラーが発生しました。私は正しい答えを提出しますか? –
よかった、ありがとう、ありがとう。 – Will