1

我有一个对象数组:

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

或者

这很荒谬吗?

:)

4

1 回答 1

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
            )
    );

}
于 2012-11-22T17:21:14.713 回答