У меня есть контактная форма, которая, кажется, не проверяет, но правильные входные данные присутствуют.
Я следовал инструкциям официального руководства, но все равно получаю эту ошибку, хотя все обязательные поля присутствуют в данных поста.
Ниже приведены моя форма и определение контроллера:
class Contact extends Form
{
public function __construct($name = null, $options = [])
{
parent::__construct($name, $options);
$input = new Input("from");
$input->getFilterChain()
->attach(new StringTrim())
->attach(new StringToLower());
$input->getValidatorChain()
->attach(new NotEmpty());
$inputFilter = new InputFilter();
$inputFilter->add($input);
$this->getInputFilter()->add($inputFilter);
$this->add(new Text(
'subject', [
'label'=>'Subject'
]
));
$this->add(new Textarea(
'message', [
'label'=>'Message'
]
));
$this->add(new Text(
'from', [
'label'=>'From'
]
));
$button = new Submit();
$button->setName('submit');
$button->setLabel('Versturen');
$button->setAttribute('value', 'Versturen');
$this->add($button);
}
}
//My controller definition
class IndexController extends AbstractActionController
{
public function indexAction()
{
$form = new Contact();
if($this->getRequest()->isPost())
{
$data = $this->params()->fromPost();
echo "<pre>";
$form->setData($data);
var_dump($form->isValid(),
$form->getInputFilter()->getMessages());
var_dump($data);
exit;
}
return new ViewModel([
'form'=>$form
]);
}
}
Ниже публикуются данные и сообщения проверки:
//The post-data is as follows:
array(4) {
["subject"]=>
string(10) "wafefewfwf"
["from"]=>
string(10) "waefwfewfw"
["message"]=>
string(0) ""
["submit"]=>
string(9) "Versturen"
}
//But It still gives me the following errors:
array(1) {
[""]=>
array(1) {
["from"]=>
array(1) {
["isEmpty"]=>
string(36) "Value is required and can't be empty"
}
}
}