ZF2 使用 inputFilter
ZF2 using inputFilter
我想知道我做错了什么,我想在数据库中保存一些不是来自 POST 或 GET:
的值
public function saveAction()
{
$wikiTable = $this->getServiceLocator()->get('WikiTable');
$data = array('source' => $someVal);
$form = new WikiForm();
$inputFilter = new \MyApp\Form\WikiFilter();
$form->setInputFilter($inputFilter);
$form->setData($data);
$this->saveWiki($form->getData());
//$this->saveWiki($data);
}
维基过滤器:
$this->add(
array(
'name' => 'source',
'required' => false,
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim'),
)
)
);
和表格:
$this->add(array(
'name' => 'source',
'type' => 'Zend\Form\Element\Hidden',
'options' => array(
'label' => 'source',
)
));
作为回应,我收到错误:
Zend\Form\Form::getData cannot return data as validation has not yet
occurred
这一行之后:
$form->setData($data);
您需要将其余代码放入如下内容:
if($form->isValid()){
$this->saveWiki($form->getData());
}
否则您的表单未通过验证,您将无法通过调用 $form->getData()
从中获取任何数据
因此,无论何时使用表单(无论数据是否来自 POST 请求),请确保在表单变量上调用函数 isValid() ,否则您将无法获得返回数据,你会得到你之前写的错误
我想知道我做错了什么,我想在数据库中保存一些不是来自 POST 或 GET:
的值public function saveAction()
{
$wikiTable = $this->getServiceLocator()->get('WikiTable');
$data = array('source' => $someVal);
$form = new WikiForm();
$inputFilter = new \MyApp\Form\WikiFilter();
$form->setInputFilter($inputFilter);
$form->setData($data);
$this->saveWiki($form->getData());
//$this->saveWiki($data);
}
维基过滤器:
$this->add(
array(
'name' => 'source',
'required' => false,
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim'),
)
)
);
和表格:
$this->add(array(
'name' => 'source',
'type' => 'Zend\Form\Element\Hidden',
'options' => array(
'label' => 'source',
)
));
作为回应,我收到错误:
Zend\Form\Form::getData cannot return data as validation has not yet occurred
这一行之后:
$form->setData($data);
您需要将其余代码放入如下内容:
if($form->isValid()){
$this->saveWiki($form->getData());
}
否则您的表单未通过验证,您将无法通过调用 $form->getData()
从中获取任何数据因此,无论何时使用表单(无论数据是否来自 POST 请求),请确保在表单变量上调用函数 isValid() ,否则您将无法获得返回数据,你会得到你之前写的错误