【发布时间】:2017-09-12 09:35:33
【问题描述】:
我还是 Symfony 和 Php 的新手,所以我使用 Symfony 文档中的 CheckboxType 代码。
目前,如果用户尝试注册并且未选中复选框,则不会出现任何消息,但仍会阻止用户创建帐户。
(1) 我希望在复选框旁边显示一条红色的错误消息,说明必须选中该框才能继续。我也想自定义这条消息。
谢谢!
Register.html
{% extends 'base.html.twig' %}
{% block body %}
<div class="container">
<div class="row">
<div class="col-xs-12">
<h1>Register!</h1>
{{ form_start(form) }}
{{ form_row(form.username) }}
{{ form_row(form.email) }}
{{ form_row(form.plainPassword.first, {
'label': 'Password'
}) }}
{{ form_row(form.plainPassword.second, {
'label': 'Repeat Password'
}) }}
<a href="https://termsfeed.com/terms-service">Terms of service</a>
{{ form_widget(form.termsAccepted) }}
<a href="http://t5Project/web/">cancel</a>
<button type="submit" class="btn btn-primary" formnovalidate>
Register
</button>
<br></br>
<p><a href="https://termsfeed.com/privacy">Privacy Policy</a>
{{ form_end(form) }}
</div>
</div>
</div>
{% endblock %}
RegistrationForm.php
class UserRegistrationForm extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('email', EmailType::class)
->add('username', TextType::class)
->add('plainPassword', RepeatedType::class, ['type' => PasswordType::class])
->add('termsAccepted', CheckboxType::class, array(
'mapped' => false,
'constraints' => new IsTrue(),));
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => User::class,
'validation_groups' => ['Default', 'Registration']
]);
}
}
【问题讨论】: