Reputation: 2237
I just dont know why form_errors(form) does not print any errors?
Here is my twig file
<form action="{{ path('fos_user_registration_register') }}" {{ form_enctype(form) }} method="POST" class="fos_user_registration_register signup-form" novalidate>
<div class="errors">
{{ form_errors(form) }}
</div>
<div class="form-input-group">
<i class="fa fa-check"></i> {{ form_widget(form.firstName, { 'attr': {'class': 'form-control'} } ) }}
</div>
<div class="form-input-group">
<i class="fa fa-check"></i> {{ form_widget(form.lastName, { 'attr': {'class': 'form-control'} } ) }}
</div>
<div class="form-input-group">
<i class="fa fa-check"></i> {{ form_widget(form.contactNumber, { 'attr': {'class': 'form-control'} } ) }}
</div>
<div class="form-input-group input-append date" id="datepicker">
<i class="fa fa-calendar"></i>
{{ form_widget(form.birthday,
{attr: {
'data-format': "dd/MM/yyyy hh:mm:ss" },
})
}}
<span class="add-on">
<i data-time-icon="icon-time" data-date-icon="icon-calendar"></i>
</span>
</div>
<div class="form-input-group">
<i class="fa fa-venus-mars"></i>
<div class="gender radio">
<label class="radio-inline">{{ form_widget(form.gender[0]) }} Male </label>
<label class="radio-inline">{{ form_widget(form.gender[1]) }} Female </label>
</div>
</div>
<div class="form-input-group">
<i class="fa fa-check"></i> {{ form_widget(form.username, { 'attr': {'class': 'form-control', 'placeholder': 'Enter username'} } ) }}
</div>
<div class="form-input-group">
<i class="fa fa-check"></i> {{ form_widget(form.email, { 'attr': {'class': 'form-control', 'placeholder': 'Enter email address'} } ) }}
</div>
<div class="form-input-group">
<i class="fa fa-lock"></i> {{ form_widget(form.plainPassword.first, { 'attr': {'class': 'form-control', 'placeholder': 'Enter password'} } ) }}
</div>
<div class="form-input-group">
<i class="fa fa-lock"></i> {{ form_widget(form.plainPassword.second, { 'attr': {'class': 'form-control', 'placeholder': 'Repeat password'} } ) }}
</div>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<button type="submit" class="btn-fill sign-up-btn">Register</button>
</div>
</div>
{{ form_rest(form) }}
</form>
and here is my form type:
class RegistrationType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
parent::buildForm($builder, $options);
$gender = array(
1 => 'Male',
0 => 'Female'
);
$builder
->add('username', 'text' , array('attr'=> array('placeholder'=>'Enter username')))
->add('firstName', 'text', array('attr'=> array('placeholder'=>'Enter first name')))
->add('lastName', 'text', array('attr'=> array('placeholder'=>'Enter last name')))
->add('birthday', 'datetime', array(
'attr' => array('placeholder' => 'Pick your birthday'),
'widget' => 'single_text',
'html5' => false,
))
->add('gender', 'choice', array(
'attr' => array('class' => 'form-control'),
'choices' => $gender,
'data' => 1,
'expanded' => true,
))
->add('contactNumber','text' , array('attr'=> array('placeholder'=>'Enter contact number')));
}
public function getParent()
{
return 'fos_user_registration';
}
public function getName()
{
return 'app_user_registration';
}
I know that there were errors because if it appears when i render them individually like so:
form_errors(form.firstName);
By the way I am using the 2.7 version.
Upvotes: 0
Views: 2134
Reputation: 494
You need to add constraints to each of your form elements.
Example:
use Symfony\Component\Validator\Constraints as Assert;
// ...
$builder->add('username', 'text', array(
// ...
'constraints' => array(
new Assert\Length(array(
'min' => 4
)
),
// ...
);
If the username field submitted has length less than 4, then it will show the error.
Check this link for other validation constraints.
Upvotes: 1
Reputation: 4860
Errors of child field will be passed to its parent only if error_bubbling is set to true
for this field.
Upvotes: 3