Php zf2从表单中获取筛选值

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”方法: 验证也没问题:验证器得到的过滤值没有空格、标

我不知道如何从表单中获取筛选值

例如,在controller中,我正在创建一个表单,并检查它是否有效:

$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();
}