2014-12-06 2 views
2

я определяю поле в моем классе формы следующим образом:Symfony2: полевая форма получает «требуется», даже если не установлен, как это в форме или шаблон Twig

->add('alternative_email', 'email', array(
    'trim' => true, 
    'required' => false 
)) 

А также пытались на этом пути:

->add('alternative_email', 'text', array(
    'trim' => true, 
    'required' => false 
)) 

Затем на шаблоне, где я рендеринга это поле я просто делаю это:

{{ form_widget(form.user.alternative_email, {'attr':{'class':'form-control'}})}} 

в любое время я сделать, что для м я получаю это как выход:

<input type="email" id="natural_user_alternative_email" name="natural[user][alternative_email]" required="required" class="form-control" data-bv-field="natural[user][alternative_email]"> 

Почему required приписывали добавляется?

Как заметка на полях, я использую BootstrapValidator, установив эти правила проверки на этом поле:

'natural[user][alternative_email]': { 
    validators: { 
     emailAddress: {}, 
     different: { 
      field: 'natural[user][email]', 
     } 
    } 
} 

Что означает:

  • действительный адрес электронной почты
  • Текущий адрес электронной почты (alternative_email) разные от одного на natural[user][email]

Кроме того, я несколько раз очистил кеш, удалив все содержимое app/cache вручную (rm -rf app/ cache) У меня есть ясный кеш APC, запустив php -r "apc_clear_cache(); apc_clear_cache('user'); apc_clear_cache('opcode');" и, наконец, перезапустив обе службы: php-fpm и nginx.

Я также работаю в окне «инкогнито» Chrome, поэтому содержимое не будет кэшироваться. Может ли кто-нибудь помочь мне в этом странном вопросе?

Выполнение некоторых других тестов: как это возможно?

Попытка найти, откуда возникла проблема, я провела некоторые другие испытания и удивила, что я смущен в этот момент, поскольку это невозможно. Понимаешь, я изменил определение поля на класс формы как:

->add('email_alternative', 'text', array(
    'trim' => true, 
    'required' => false 
)) 

И не трогали любую другую часть моего кода, так шаблон остается неизменным и попросить оказать alternative_email поле. Как и ожидалось, это должно пройти через ошибку? Ну, НЕ, никаких ошибок, страница все еще отображается и поле продолжает звонить natural[user][alternative_email], как это возможно?

Я остановил Nginx и начал Apache, чтобы проверить, существует ли какой-то странный кеш, но так же, как и раньше: нет ошибок, поле держит вызов natural[user][alternative_email], любой ключ?

ПРИМЕЧАНИЕ: Я использую Symfony 2.6.1

+0

correo_alternativo или alternative_email? – Cerad

+0

@Cerad 'alternative_email' просто опечатка во время перевода с испанского на английский извините – ReynierPM

+1

Проверьте, что ваш контроллер вызывает правильный тип формы. Является ли атрибут 'required' еще там, если вы удалите BootstrapValidator? –

ответ

0

Я нашел, где проблема была и я сказал, как почти всегда является разработчиком (я на этом) ошибка, а не сама структура. Проблема была простой, и у A.L было право: контроллер вызывал аналогичную форму, и я вносил изменения в другие. Так что теперь все хорошо. Благодаря А.L для наконечника