私が何か間違ったことをしているのか、それともこれがZF2のバグなのか疑問に思います。フォームにデータを設定しようとしているときは、それを検証してデータを取得しようとすると、それは単なる空の配列です。
問題を単純化するために、いくつかのクラスからこのコードを抽出しました
$form = new \Zend\Form\Form;
$form->setInputFilter(new \Zend\InputFilter\InputFilter);
$form->add(array(
'name' => 'username',
'attributes' => array(
'type' => 'text',
'label' => 'Username',
),
));
$form->add(array(
'name' => 'submit',
'attributes' => array(
'type' => 'submit',
'value' => 'Register',
),
));
if ($this->getRequest()->isPost()) {
$form->setData($this->getRequest()->getPost()->toArray());
if ($form->isValid()) {
echo '<pre>';
print_r($form->getData());
print_r($form->getMessages());
echo '</pre>';
}
}
両方ともprint_r()
空の配列を示しています。フォームからデータを取得せず、メッセージも取得しません。それは私のせいですか、それともZF2のせいですか?