[英]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.