Zend Framework,getParams - > setParams

时间:2011-02-13 15:30:55

标签: php zend-framework

我是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,所以如果我想在任何地方访问该数据我可以确定它们是安全的。是否有可能只将索引更改为索引控制器。提前谢谢!

3 个答案:

答案 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()替换参数。