将自定义数据传递给Symfony / Twig中的表单主题

问题描述 投票:1回答:2

我是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文件位于同一文件中。我有我自己的...

symfony symfony4
2个回答
0
投票

我不确定,但是您可以在主题中使用{{form}}来访问表单变量。这样就可以使用它了。希望有帮助


0
投票

因此,我设法找到了执行所需操作的“适当”方法:表单类型扩展。它的Symfony Casts tutorial很好。简而言之,您将创建一个类来扩展您的主窗体输入类。在我的情况下,我正在处理基于文本的输入,因此我创建了一个从App\Form\ypeExtension\TextIconExtension扩展的FormTypeExtensionInterface类,然后实现了configureOptionsbuildView(我删除了我未填写的接口中的函数):

© www.soinside.com 2019 - 2024. All rights reserved.