symfony2 で作成したフォームがあります。
$builder->add('purchaseOrder','text');
$builder->add('product', 'entity', array(
'class' => 'WICProductBundle:Product',
'property' => 'name',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('p')
->where('p.account=?1')
->orderBy('p.name', 'ASC')
->setParameter(1,$this->account);
}
));
このフォームを Twig で出力して送信すると、正常に動作します。
フォームビルダーをこれに変更してフォームを送信すると、エラーが発生します?!?!
$builder->add('purchaseOrder','text');
$builder->add('product','text');
フォームの最初の反復では、注文書フィールドに 8 を入力し、製品ドロップダウンで値 65 のオプションを選択します... すべてうまくいきます...
フォームの 2 回目の反復では、発注書フィールドに 8 を入力し、製品フィールドに 65 の値を入力します...そして、次のエラーが発生します。
Catchable Fatal Error: Argument 1 passed to WIC\PurchaseOrderLineItemBundle\Entity\PurchaseOrderLineItem::setProduct() must be an instance of WIC\ProductBundle\Entity\Product, string given, called in /Applications/MAMP/htdocs/symfonydev/vendor/symfony/symfony/src/Symfony/Component/Form/Util/PropertyPath.php on line 538 and defined in /Applications/MAMP/htdocs/symfonydev/src/WIC/PurchaseOrderLineItemBundle/Entity/PurchaseOrderLineItem.php line 302
毎回同じ値の "65" が渡されると、ドロップダウンをテキスト ボックスに交換するとフォームが壊れてしまうのはなぜですか?