Php Symfony2实体选择问题

Php Symfony2实体选择问题,php,forms,symfony,entity,Php,Forms,Symfony,Entity,我的Symfony2项目中有一个实体表单字段 public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('productId', 'genemu_jquerychosen_entity', array( 'class' => 'EMRSabaBundle:Product', 'property' =>

我的Symfony2项目中有一个
实体
表单字段

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('productId', 'genemu_jquerychosen_entity', array(
        'class' => 'EMRSabaBundle:Product',
        'property' => 'name'
    ))
    ;
}
产品
实体有一些对象,如价格、名称、模式和id 我想让用户按名称选择产品&查看所选产品的价格,然后提交产品ID,而不是名称


是否有soloution?

根据此捆绑包的文档:

您可以使用Symfony的所有核心选项类型(选项、国家/地区、, …)和条令(ORM和ODM),您只需在类型名称前面加上前缀 使用genemu_jqueryselect2_*

这意味着您使用的是“常规”
实体
字段。您可以通过跳过
属性的定义并依赖
\uu toString()
方法来执行所需操作,方法来自
emrsaabundle:Product

[属性]

这是应用于显示实体的属性 作为HTML元素中的文本。如果留空,则实体对象将为空 强制转换为字符串,因此必须有一个_toString()方法

将代码更改为:

$builder->add('productId', 'genemu_jquerychosen_entity', array(
        'class' => 'EMRSabaBundle:Product'
    ))
并在
emrsaabundle:Product
对象中定义
\u toString()
方法,如下所示:

public function __toString()
{
    return $this->name . ' (' . $this->price . ')';
}

根据此捆绑包的文档:

您可以使用Symfony的所有核心选项类型(选项、国家/地区、, …)和条令(ORM和ODM),您只需在类型名称前面加上前缀 使用genemu_jqueryselect2_*

这意味着您使用的是“常规”
实体
字段。您可以通过跳过
属性的定义并依赖
\uu toString()
方法来执行所需操作,方法来自
emrsaabundle:Product

[属性]

这是应用于显示实体的属性 作为HTML元素中的文本。如果留空,则实体对象将为空 强制转换为字符串,因此必须有一个_toString()方法

将代码更改为:

$builder->add('productId', 'genemu_jquerychosen_entity', array(
        'class' => 'EMRSabaBundle:Product'
    ))
并在
emrsaabundle:Product
对象中定义
\u toString()
方法,如下所示:

public function __toString()
{
    return $this->name . ' (' . $this->price . ')';
}