[英]How to work with entity form field type, and JUI autocomplete in Symfony2?
我有表單,我有entity
字段類型,使用戶可以選擇相關的Client
實體。 它在開發環境中運行良好,但在生產中將有數千個客戶端可供選擇,HTML表單字段類型將無法處理此問題。
我寫過動作巫婆使用Zend Lucene並以JSON格式返回JUI自動完成的客戶端,我如何使用entity
表單字段類型啟用此自動完成?
這不正是你想要的答案,因為我有一個選擇字段做了,而且它是一種工作的周圍。 這是一個表單,您可以選擇接收方發送消息(=廣告系列):
在FormType中:
public function __construct(EntityManager $em, Campaign $campaign) { $this->campaign = $campaign; $this->em = $em; } public function buildForm(FormBuilder $builder, array $options) { $contactChoices = array('0'=>''); if($this->campaign && $this->campaign->getRecipientContacts()){ foreach($this->campaign->getRecipientContacts() as $contact){ $contactChoices[$contact->getHash()] = $contact->getName(); } } $builder->add('subject') ->add('message','textarea') ->add('recipientContacts','choice', array( 'required' => false, 'multiple' => true, // manage multiple choices 'choices' => $contactChoices, 'property_path' => false, )) ...
然后在控制器中:檢索已發布的聯系人並將其分配給廣告系列:
if($this->getRequest()->getMethod() == 'POST'){ $campaign->removeRecipientContacts(); $data = $this->getRequest()->get('campaignForm'); if(isset($data['recipientContacts'])){ foreach($data['recipientContacts'] as $hash){ $contact = $this->getRepo()->getContactByHash($hash); $campaign->addRecipientContact($contact); } } }
這允許您在前端使用任何JS小部件(自動完成,...)。 只需在您選擇的字段中添加選項即可 的種類:
function addContact(hash,name){
$('#campaignContactChoiceSelectField').append('<option value="'+hash+'">'+name+'</option>');
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.