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 に答える