我正在尝试在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'
是什么意思?
答案 0 :(得分:1)
我这样做,它很脏但对我有用:
$_SERVER['REQUEST_METHOD'] = 'POST';
$result = $this->testAction($url,
array(
'form' => $data
)
);