区分Zend中的post和param变量

时间:2012-05-31 07:50:29

标签: php zend-framework post zend-form-element

我在其中一位帮手中有这段代码

 $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?

4 个答案:

答案 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();