我有一个在 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 的选项...一切正常...
表单的第二次迭代我用 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”值,为什么我的表单会从下拉列表切换到文本框?