我在其中一位帮手中有这段代码
$front = Zend_Controller_Front::getInstance();
$request = $front->getRequest();
print_r($request->getParams());
结果
Array
(
[controller] => packaging
[action] => index
[package] => 87
[module] => default
[groupid] => 32
[packageid] => 87
[conceptrel] => 161
[always_same] =>
[getparts] => 1
)
这里有时候packageid来自POST,有时候是通过url(getparam)...我怎么知道它的帖子还是param?
答案 0 :(得分:1)
我得到了答案
$front = Zend_Controller_Front::getInstance();
$request = $front->getRequest();
print_r($request->getUserParams()); //only user params not post,get..etc
答案 1 :(得分:1)
回答你问的问题:
我怎么知道它的帖子还是参数?
<强> 24.4.2.3 即可。确定请求方法getMethod()允许您确定用于请求当前的HTTP请求方法 资源。此外,还有各种方法可供您使用 在询问特定类型的请求是否具有时,获取布尔响应 做了:
isGet()
isPost()
isPut()
isDelete()
isHead()
isOptions()
所以这导致代码如下:
if ($this->getRequest()->isPost()){
//do some stuff
}
答案 2 :(得分:0)
您可以先检查请求是否发布$request->isPost();
至于原点,你也可以为它写一个帮手。 getParams
中的Zend_Controller_Request_Http
方法返回第一个用户参数,然后是GET,然后是POST。当名称匹配时,最后一个是首选。你的帮助者必须考虑到这一点。
答案 3 :(得分:0)
您也可以这样做:
$this->getRequest()->setParamSources(array('_POST'));
,您的$_POST
数组将始终等于getParams()
;