Zend Framework - 如何从请求中删除param?

时间:2010-12-29 10:09:35

标签: zend-framework

如何从控制器内的请求对象中完全删除param?

有这方法吗?

或者我应该选择所有参数,循环它们,删除然后重新设置它们?

这是斯巴达? :d

3 个答案:

答案 0 :(得分:6)

要使用NULL值删除参数,请使用unset php函数或setParam()。如果要循环使用请求对象中的getParams()函数。

<强> 更新

由于params是受保护的变量,因此可以调用__unset()来访问不可用的属性。 您将不得不为此扩展Zend_Controller_Request_Abstract。

答案 1 :(得分:1)

我补充一点,如果您的请求是HTTP请求,那么您将无法更改来自GET或POST参数的参数。这些参数通过覆盖访问器虚拟地添加到所有参数,因此使用GET或POST变量键作为参数的这些请求上的setParam()将不执行任何操作,因为setParam()测试密钥是否存在于“内在”参数中requets,而不是HTTP。

要更改这些类型的参数,您必须直接从$ _GET或$ _POST php数组中取消设置键。

答案 2 :(得分:1)

ZF2的做事方式。

if ($request->getPost()->offsetExists('myparam')) {
    $request->getPost()->offsetUnset('myparam')
}