symfony2 foreign keyの登録でハマる
symfony2 doctrineであるテーブルのforeign keyが登録されない事象が発生。
どうやらpersist -> flushするオブジェクトが参照先のEntityを知っておかないと駄目な模様。
$em->persist($hoge); $em->flush();
こーなってたコードを
$fooRepository = $em->getRepository('Foo'); /* * 遅延読み込みで proxyオブジェクトが返却される。みたい。 * http://docs.symfony.gr.jp/symfony2/book/doctrine.html */ $foo = $fooRepository->find( $hoge->getFooId() ); //fooEntityの関連付け $hoge->setFoo( $foo ); $em->persist($hoge); $em->flush();
こうしたら動作した。
formTypte側で関連づけできる時は気にする必要ないんだろうけど。。。