Проверка формы - я получаю ярлыки два раза
У меня есть форма регистрации - от FOSUserBundle это в шаблоне:
{% 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>
Вот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 %}
Я только что добавил несколько классов CSS из TwitterBootstrap.
Проблема в том, что я получаю некоторые сообщения для проверки дважды.
Моя форма имеет 4 поля -Имя пользователя, электронная почта, пароль, подтверждение пароля
Я попытался нарушить как можно больше правил проверки, и вот результат:
ЗаUsername
:
Заemail
:
и если я введу уже использованную электронную почту, ошибка будет отображаться только один раз:
Этот электронный адрес уже используется.И дляpasswords
:
Если они короткие:
Пароль слишком короткий - введите не менее 6 символов.Пароль слишком короткий - введите не менее 6 символов.И если они не совпадают:
Введенные пароли не совпадают.Еще одна странная вещь: когда я повторно отправляю форму, но она все еще не действительна, уведомление о длине пароля только одно:
Пароль слишком короткий - введите не менее 6 символов.и до повторного представления их было двое.
У вас есть идеи, почему некоторые ошибки отображаются дважды и как это исправить? Заранее большое спасибо! :)
ОБНОВИТЬ
Это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
}
}
И вC:\xampp\htdocs\Project\app\Resources\FOSUserBundle\translations\
Я скопировал файлvalidators.en.yml
и в нем и убрали[-Inf, Inf]
часть и немного изменил сообщения.
Я также переопределил файл проверки - я скопировал его сюда:
C:\xampp\htdocs\Project\src\Acme\MyBundle\Resources\config\validation.xml
Я изменил только минимальную длину пароля. Все остальное так же, как в оригинальном файле.
Мой комплект расширяет FOSUserBundle:
C:\xampp\htdocs\Project\src\Acme\MyBundle\AcmeMyBundle.php
этот файл содержит следующее:
<?php
namespace Acme\BudgetTrackerBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class AcmeBudgetTrackerBundle extends Bundle
{
public function getParent()
{
return 'FOSUserBundle';
}
}