行上的 Symfony 表单主题自定义属性

Symfony form theme custom attribute on row

好的,我有一个自定义单选按钮的表单主题。在表单主题中,我将标签呈现为图像。该图像基本上是对路由的调用(returns BinaryResponse):

<img src="{{ path('the_route_name', {'slideImage': value}) }}" class="slideImage">

现在,这可行了,但是,幻灯片背景选择器需要使用相同的表单类型。效果图是一样的,只是路由调用和参数不同

幻灯片图片:带参数 slideImage 的 showSlideImage 幻灯片背景:带参数 slideshowBackground

的 showBackgroundImage

我的想法是将自定义数据属性发送到路由名称的表单(我可以将两个参数设置为相同的名称以避免该问题)。

我在呈现表单的 twig 模板中尝试了以下操作:

{{ form_row(form.background, {'attr': {'data-path': 'path'}}) }}

(背景是一个EntityType,多个为false,扩展为true)

但是,当我在表单主题中放置转储时

{{ dump(attr) }}

它显​​示一个空数组。我试过将 attr 更改为 row_attr 但这并没有改变任何东西。如何将自定义数据属性发送到表单主题以使其呈现?

看来我不得不使用 choice_attr:

'choice_attr' => function($choice, $key, $value) {
    return ['path' => 'showSlideImage'];
},

我之前尝试过使用choice_attr,但我没有使用回调函数,所以我用错了方法。然后我可以使用 attr.path 来获得正确的值。