[英]Symfony2 entity choice issue
我的Symfony2项目中有一个entity
表单字段。
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('productId', 'genemu_jquerychosen_entity', array(
'class' => 'EMRSabaBundle:Product',
'property' => 'name'
))
;
}
Product
实体具有一些对象,例如价格,名称,模式和ID,我想让用户按名称选择产品并查看所选产品的价格,然后提交产品ID,而不是名称。
有什么东西吗?
根据此捆绑包的文档:
您可以使用Symfony(选择,国家,...)和主义(ORM和ODM)中的所有核心选择类型,只需在类型名称前加上genemu_jqueryselect2_ *
这意味着您正在使用“常规” entity
字段。 您可以通过跳过property
的定义并依靠EMRSabaBundle:Product
的__toString()
方法来执行EMRSabaBundle:Product
:
[属性]
这是用于在HTML元素中将实体显示为文本的属性。 如果保留为空白,则实体对象将转换为字符串,因此必须具有__toString()方法。
将您的代码更改为:
$builder->add('productId', 'genemu_jquerychosen_entity', array(
'class' => 'EMRSabaBundle:Product'
))
并在EMRSabaBundle:Product
对象中定义_toString()
方法,如下所示:
public function __toString()
{
return $this->name . ' (' . $this->price . ')';
}
http://symfony.com/doc/current/reference/forms/types/entity.html#property
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.