2012-11-22 73 views
1

我有對象的數組的數組:Symfony2的形式的選擇 - 對象(未映射實體)

[0] ProductObject 
     Title 
     Image 
     Link 

[1] ProductObject 
     Title 
     Image 
     Link 

我可以通過在細這些對象到我的形式:

public function buildForm(FormBuilder $builder, array $options) 
    { 
     $builder->add(
       'products', 
       'choice', 
       array(
         'choices' => $productsArray, 
         'multiple' => false, 
         'required' => false 
       ) 
     ); 

    } 

然後在模板:

  {{ form_label(form.products, 'products') }} 
      {{ form_errors(form.products) }} 
      {{ form_widget(form.products) }} 

      {{ form_rest(form) }} 

現在,正如所料,形式呈現出來,如:

<optgroup label="0"> 
    <option value="id">174</option> 
    <option value="title">A Bag Of Frogs</option> 
    <option value="image">Image</option> 
    <option value="link">http://www.myshoppe.com</option> 
</optgroup> 

我只希望在下拉菜單中的標題,但我非常喜歡來保持圖像和鏈接可以作爲我想使用JavaScript來在用戶選擇產品後立即使用圖像標題填充另一個div並鏈接。

所以,問題是「我如何隱藏Twig中的對象屬性?」

or

這是否可笑?

:)

回答

5

我認爲你正在尋找ObjectChoiceList

你可以使用這樣的:

$choiceList = new ObjectChoiceList($products, 'title', array(), null, 'id'); 

public function buildForm(FormBuilder $builder, array $options) 
{ 
    $builder->add(
      'products', 
      'choice', 
      array(
        'choice_list' => $choiceList, 
        'multiple' => false, 
        'required' => false 
      ) 
    ); 

}