我是Zend Framework的新手,但我还没有找到解决方案。问题是下一个: 我有表单,提交时用户转到索引控制器并有一个添加操作。我知道我怎么能得到params,这就是我想做的事情:
$clear = $this->getRequest()->getParams();
foreach ($clear as $key => $value) {
$clear[$key]=trim(strip_tags($value));
}
$this->setRequest()->setParams($clear);//error, Argument 1 passed to Zend_Controller_Action::setRequest() must be an instance of Zend_Controller_Request_Abstract
所以问题是如何在整个页面中更改params,所以如果我想在任何地方访问该数据我可以确定它们是安全的。是否有可能只将索引更改为索引控制器。提前谢谢!
答案 0 :(得分:3)
您可能需要查看Zend_Filter_Input来验证和过滤用户输入。我认为如果你只想在模型中保存数据,那么改变请求参数是不好的做法。相反,让Zend_Filter_Input处理它并将结果提供给您的模型。
如果你转发到另一个控制器动作怎么办?您无权访问未经更改的内容。当其他人在您的项目中萌芽时,他/她可能不会期望请求参数被更改。
答案 1 :(得分:1)
将setRequest()更改为getRequest()。
$this->getRequest()->setParams($clear);
答案 2 :(得分:1)
试试这个:
$request = $this->getRequest();
$clear = $request->getParams();
foreach ($clear as $key => $value) {
$clear[$key]=trim(strip_tags($value));
}
$request->setParams($clear);
换句话说,您不想替换请求(使用setRequest()
),而只是用setParams()
替换参数。