Я хочу сделать chekbox для использования. Я нашел интересное решение, заданное webcoder How to validate a checkbox in ZF2zf2 Отказ рендеринга по formInput не удается
Дело в том, что у меня сложная структура HTML, поэтому я не могу использовать ни formRow, ни formCollection для рендеринга. Я пытаюсь использовать следующий подход вместо:
$agreement = $form->get('agreement');
echo $this->formInput($agreement);
echo $this->formElementErrors($agreement);
И я получаю пустое значение:
<input type="checkbox" name="agreement" class="checkbox" value="">
Я также попытался добавить скрытое поле, но моя попытка также не удалась:
$agreement = $form->get('agreement');
echo $this->formHidden($agreement);
echo $this->formInput($agreement);
echo $this->formElementErrors($agreement);
HTML, является:
<input type="hidden" name="agreement" class="checkbox" value="">
<input type="checkbox" name="agreement" class="checkbox" value="">
В результате я получаю ошибки «Значение требуется и не может быть пустым»
Может быть, кто-нибудь может дать мне подсказку, как правильно снять флажок в моем случае?
код моего inputFilter:
<?php
namespace Auth\Form;
use Zend\InputFilter\InputFilter;
use Zend\Validator\Digits;
class UserFormFilter extends InputFilter {
public function __construct() {
$this->add(array(
'name' => 'agreement',
'validators' => array(
array(
'name' => 'Digits',
'break_chain_on_failure' => true,
'options' => array(
'messages' => array (
Digits::NOT_DIGITS => 'You must agree to the terms of use.',
)
),
),
),
));
}
}
?>
Можете ли вы добавить код вашего InputFilter? – StoryTeller
добавил, я использовал тот, который указан в ссылке http://stackoverflow.com/questions/13459581/how-to-validate-a-checkbox-in-zf2 – Sabine
Возможно, стоит прочитать документы об использовании 'formCheckbox 'рассмотрите помощника и используйте это вместо этого, если' formInput' -> http://framework.zend.com/manual/current/en/modules/zend.form.elements.html#checkbox – Crisp