【问题标题】:Symfony2 form choice - array of objects (not mapped entities)Symfony2 形式选择 - 对象数组(未映射实体)
【发布时间】:2012-11-22 15:24:54
【问题描述】:

我有一个对象数组:

[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 中隐藏对象属性?”

这很可笑吗?

:)

【问题讨论】:

    标签: forms symfony twig


    【解决方案1】:

    我想你正在寻找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
                )
        );
    
    }
    

    【讨论】:

      猜你喜欢
      • 2012-07-21
      • 1970-01-01
      • 2012-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多