CakePHP - testAction总是创建一个GET请求

时间:2014-04-01 21:27:53

标签: php cakephp cakephp-1.3

我正在尝试在CakePHP 1.3中测试需要POST请求的控制器,但testAction总是生成一个GET请求。我把它简化为一个简单的示例操作,纯粹使用以下方式报告请求方法:

$this->RequestHandler->isPost()

或者

$this->RequestHandler->isGet()

结果总是GET,无论我是否设置'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'是什么意思?

1 个答案:

答案 0 :(得分:1)

我这样做,它很脏但对我有用:

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