2014-04-01 38 views
2

我想在CakePHP 1.3中測試一個需要POST請求的控制器,但testAction總是生成一個GET請求。我煮它歸結爲純粹報告使用請求方法的簡單動作例:CakePHP - testAction總是創建一個GET請求

$this->RequestHandler->isPost() 

或者

$this->RequestHandler->isGet() 

結果總是,不管是不是我設置'method' => 'post'或發送數據陣列。

形式testAction的我已經試過:

$this->testAction('/testing/requesttype', array('method' => 'post')); 
$this->testAction('/testing/requesttype', array('data' => array('Post' => array('title' => 'test')), 'method' => 'post')); 
$this->testAction('/testing/requesttype', array('data' => array('Post' => array('title' => 'test')))); 
$this->testAction('/testing/requesttype', array('form' => array('test' => 'test'), 'data' => array('Post' => array('title' => 'test')), 'method' => 'post')); 

上述所有產生的GET請求。如果在CakePHP 1.3中無法完成這項工作,'method => 'post'的要點是什麼?

+2

是否有可能爲您升級到一個像樣的版本? 2.4?這將解決問題。那裏肯定有效。 1.3對於我們大多數人來說太舊了,無法給你一個可靠的答案。 – mark

+1

就像我們很想看到它,它對我們來說太大了一個工作 – robjingram

+0

是不是你用這個用重定向測試一個動作? –

回答

1

我做這種方式,它是骯髒的,但對我的作品:

$_SERVER['REQUEST_METHOD'] = 'POST'; 
    $result = $this->testAction($url, 
     array(
      'form' => $data 
      ) 
     );