在 FormType 中设置 ButtonType id,而不是在 twig 文件中?
Set ButtonType id in FormType, not in twig file?
我在 FormType
文件中有这个 buildForm
方法:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('content', TextareaType::class, array(
'label' => 'Коментар',
'attr' => array(
'class' => 'form-control input_box'
)
))
->add('submit', ButtonType::class, array(
'label' => 'SEND',
'attr' => array(
'id' => 'saveButton'
)
));
}
然后我在 twig 文件中渲染表单:
<div class="post_comment">
<h3>Add comment</h3>
{{ form_start(commentForm) }}
<!--div class="col-md-6">
<h4>Name</h4>
<input type="text" class="form-control input_box" id="fullname" placeholder="">
</div>
<div class="col-md-6">
<h4>Email</h4>
<input type="text" class="form-control input_box" id="email" placeholder="">
</div-->
<div class="col-md-12">
<h4>{{ form_label(commentForm.content) }}</h4>
{{ form_widget(commentForm.content) }}
{{ form_widget(commentForm.submit) }}
</div>
{{ form_end(commentForm) }}
</div>
但是按钮没有 saveButton
的 id,而是:
<button type="button" id="app_bundle_comment_form_type_submit" name="app_bundle_comment_form_type[submit]">SEND</button>
当我像这样在 twig 文件中设置 id 时,它工作正常:
{{ form_widget(commentForm.submit, {'id': 'saveButton' }) }}
按钮的 ID 将是 add() 函数的第一个参数(在您的例子中,"submit")。这就是为什么您的 ID 上有 "app_bundle_comment_form_type_submit" 的原因。
要删除 id 的其余部分,FormType 文件中有一个名为 getBlockPrefix() 的函数。只需将 return 值设置为 "" 即可。
我在 FormType
文件中有这个 buildForm
方法:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('content', TextareaType::class, array(
'label' => 'Коментар',
'attr' => array(
'class' => 'form-control input_box'
)
))
->add('submit', ButtonType::class, array(
'label' => 'SEND',
'attr' => array(
'id' => 'saveButton'
)
));
}
然后我在 twig 文件中渲染表单:
<div class="post_comment">
<h3>Add comment</h3>
{{ form_start(commentForm) }}
<!--div class="col-md-6">
<h4>Name</h4>
<input type="text" class="form-control input_box" id="fullname" placeholder="">
</div>
<div class="col-md-6">
<h4>Email</h4>
<input type="text" class="form-control input_box" id="email" placeholder="">
</div-->
<div class="col-md-12">
<h4>{{ form_label(commentForm.content) }}</h4>
{{ form_widget(commentForm.content) }}
{{ form_widget(commentForm.submit) }}
</div>
{{ form_end(commentForm) }}
</div>
但是按钮没有 saveButton
的 id,而是:
<button type="button" id="app_bundle_comment_form_type_submit" name="app_bundle_comment_form_type[submit]">SEND</button>
当我像这样在 twig 文件中设置 id 时,它工作正常:
{{ form_widget(commentForm.submit, {'id': 'saveButton' }) }}
按钮的 ID 将是 add() 函数的第一个参数(在您的例子中,"submit")。这就是为什么您的 ID 上有 "app_bundle_comment_form_type_submit" 的原因。 要删除 id 的其余部分,FormType 文件中有一个名为 getBlockPrefix() 的函数。只需将 return 值设置为 "" 即可。