我是Symfony的新手,目前使用4.4,并且正在尝试为一种特定的表单实现简单的表单主题,即该主题与表单的html.twig
文件位于同一文件中。我有自己的form_row
块,并且试图在调用它时传递自定义数据(在div中使用的图标),所以类似(高度概括!):
{{ form_row(signUpForm.email, {
attr: { placeholder: 'e.g. [email protected]' },
icon: 'envelope'
}) }}
然后尝试将表单呈现为
{%- block form_row -%}
<div>
{{ form_label(form) }}
{{ form_widget(form, {attr: class: 'input'}) }}
<i class="icon {{ icon }}"></i>
</div>
我也尝试通过formBuilder传递图标,如下所示:>
$builder ->add('email', EmailType::class, [ 'attr'=> ['icon' => 'envelope'] ])
但没有喜悦。当然这是可能的!任何帮助将不胜感激。谢谢
我是Symfony的新手,目前使用4.4,并且正在尝试为一种特定的表单实现简单的表单主题,即该主题与表单的html.twig文件位于同一文件中。我有我自己的...
我不确定,但是您可以在主题中使用{{form}}来访问表单变量。这样就可以使用它了。希望有帮助
因此,我设法找到了执行所需操作的“适当”方法:表单类型扩展。它的Symfony Casts tutorial很好。简而言之,您将创建一个类来扩展您的主窗体输入类。在我的情况下,我正在处理基于文本的输入,因此我创建了一个从App\Form\ypeExtension\TextIconExtension
扩展的FormTypeExtensionInterface
类,然后实现了configureOptions
和buildView
(我删除了我未填写的接口中的函数):