添加' v-model '到Symfony ' ChoiceType '单选按钮



将ve .jsv-model添加到Symfony单选按钮(即ChoiceType with'expanded' => true, 'multiple' => false)的最简单方法是什么?Vue.js期望v-model上每个<input type="radio">,参见https://v3.vuejs.org/guide/forms.html#radio

我的解决方案/解决方法是在Twig中使用form_widget()渲染每个单选按钮:

{% for foo in form.foo %}
{{ form_widget(foo, {'attr': {'v-model':'foo'}} ) }}
{% endfor %}

但是是否有一种方法可以让form_row()一次获得它们?

attrrow_attr不工作:

{{ form_row(form.foo, {'attr': {'v-model':'foo'}} ) }}
{# or #}
{{ form_row(form.foo, {'row_attr': {'v-model':'foo'}} ) }}

都导致v-model被添加到容器:

<div v-model="foo">

解决方案是choice_attr,但由于您需要传递回调函数,您不能在Twig中这样做,但在您的FormType:

$builder->add('foo', ChoiceType::class, ['expanded' => true, 'multiple' => false,
choice_attr' => function($choice, $key, $value): array {
return ['v-model' => 'foo'];
},
]);

最新更新