Php zf2从表单中获取筛选值
我不知道如何从表单中获取筛选值 例如,在controller中,我正在创建一个表单,并检查它是否有效:Php zf2从表单中获取筛选值,php,zend-framework2,zend-form,zend-filter,Php,Zend Framework2,Zend Form,Zend Filter,我不知道如何从表单中获取筛选值 例如,在controller中,我正在创建一个表单,并检查它是否有效: $editPersonFormObject->setData($this->getRequest()->getPost()); if ($editPersonFormObject->isValid()) { // saving logic } 表单包含“name”元素: 并实现“getInputFilter”方法: 验证也没问题:验证器得到的过滤值没有空格、标
$editPersonFormObject->setData($this->getRequest()->getPost());
if ($editPersonFormObject->isValid()) {
// saving logic
}
表单包含“name”元素:
并实现“getInputFilter”方法:
验证也没问题:验证器得到的过滤值没有空格、标记等,但当我尝试在模型中保存值时:
$personRowObject->name = $formObject->get('name')->getValue();
我用空格得到未过滤的值。即使我试图通过FormInput Filter获取值:
$formObject->getInputFilter()->getValues();
我得到一个空值数组:
array(1) {
["name"] => string(0) ""
}
我做错了什么?从表单检索数据的正确方法是使用
$form->getData()
这将是一个值数组或一个对象,具体取决于窗体的设置方式。此外,只能在使用$form->isValid()
验证表单后调用函数getData()
。您返回的值也将被过滤。由于过滤在验证之前发生您可以将对象与表单绑定:
$form->bind($personRowObject);
if ($form->isValid()) {
// this returns an object already populated with the form values, filtered
$person = $form->getData();
}
您的person对象需要有一个方法exchangeArray($data)
,您可以在其中从表单数据设置所需的对象属性。这没关系,我理解,但是我得到一个空字符串数组,调用$formObject->getValues(),就像数组(1){[“name”=>string(0)”}getData()
not code>getValues()
-如果字段名称
未正确验证,则内容将为空字符串(0)
。检查$form->getMessages()
array(1) {
["name"] => string(0) ""
}
$form->bind($personRowObject);
if ($form->isValid()) {
// this returns an object already populated with the form values, filtered
$person = $form->getData();
}