Validação de um formulário - estou recebendo os rótulos duas vezes
Eu tenho um formulário de inscrição - de FOSUserBundle isso está no modelo:
{% form_theme form 'AcmeMyBundle:Form:errors.html.twig' %}
<form class="big-spacer" action="{{ path('fos_user_registration_register') }}" {{ form_enctype(form) }} method="POST" class="fos_user_registration_register">
{{ form_widget(form) }}
<div>
<input class="btn little-spacer" type="submit" value="{{ 'registration.submit'|trans({}, 'FOSUserBundle') }}" />
</div>
</form>
Aqui estáerrors.html.twig
:
{% block field_errors %}
{% spaceless %}
{% if errors|length > 0 %}
<ul class="little-spacer nav text-error">
{% for error in errors %}
<li>{{loop.index}}. {{ error.messageTemplate|trans(error.messageParameters, 'validators') }}</li>
{% endfor %}
</ul>
{% endif %}
{% endspaceless %}
{% endblock field_errors %}
Acabei de adicionar algumas classes css do TwitterBootstrap.
O problema é que eu recebo algumas das mensagens para a validação duas vezes.
Meu formulário tem 4 campos -Nome de usuário, email, senha, confirme a senha
Eu tentei quebrar tantas regras de validação que posso e aqui está a saída:
ParaUsername
:
Paraemail
:
e se eu inserir o email já usado, o erro será mostrado apenas uma vez:
Este email já está sendo usado.E para opasswords
:
Se eles são curtos:
A senha é muito curta - por favor, insira pelo menos 6 símbolos.A senha é muito curta - por favor, insira pelo menos 6 símbolos.E se eles não corresponderem:
As senhas digitadas não correspondem.Outra coisa estranha é que quando eu reenviar o formulário, mas ainda não é válido, o aviso para o comprimento da senha é apenas um:
A senha é muito curta - por favor, insira pelo menos 6 símbolos.e antes de reenviar, eles eram dois.
Você tem alguma idéia de porque alguns dos erros são exibidos duas vezes e como corrigir isso? Muito obrigado antecipadamente! :)
ATUALIZAR
Isto éC:\xampp\htdocs\Project\src\Acme\MyBundle\Entity\User.php
namespace Acme\MyBundle\Entity;
use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
public function __construct()
{
parent::__construct();
// your own logic
}
}
E emC:\xampp\htdocs\Project\app\Resources\FOSUserBundle\translations\
Copiei o arquivovalidators.en.yml
e nele e removido o[-Inf, Inf]
parte e mudou as mensagens um pouco.
Eu também anulei o arquivo de validação - eu copiei aqui:
C:\xampp\htdocs\Project\src\Acme\MyBundle\Resources\config\validation.xml
Eu mudei apenas o comprimento mínimo da senha. Tudo o resto é o mesmo que no arquivo original.
Meu pacote estende o FOSUserBundle:
C:\xampp\htdocs\Project\src\Acme\MyBundle\AcmeMyBundle.php
este arquivo contém o seguinte:
<?php
namespace Acme\BudgetTrackerBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class AcmeBudgetTrackerBundle extends Bundle
{
public function getParent()
{
return 'FOSUserBundle';
}
}