使用post-cakephp类型创建CakeRequest实例

时间:2014-07-22 10:15:17

标签: cakephp post request

这是同样的问题, How to programmatically create instance of CakeRequest?

就我而言,我想创建post请求

$request = new CakeRequest('/posts/view');
$request->data = array('key' => 'value');

我试着用这个

$request->addDetector('post', 
    array (
        'env' => 'REQUEST_METHOD',
        'value' => 'POST' 
    )
);

但是当我在下一页上回显$this->request->method()时,它总是输出GET。如何将请求类型设置为post

更新 蛋糕版2.3

UPDATE2

实际上我想要做的是这样的:假设我有一个用于创建帖子的表单,包含标题和内容字段。现在,如果用户未登录,则在该表单下我显示了登录/注册表单的输入(因此我在该页面上只有一个表单),因此用户将填写登录或注册信息的用户名/密码,如果他选择注册,请点击signin and publishsignup and publish按钮。在db的表的临时行和/或会话中保存帖子的信息后,我需要对用户进行身份验证,因为我想发送用户控制器的signup and publish操作的发布请求,并且不更改那些注册/登录功能(我正在检查发布请求)我想创建此发布请求。我知道我也可以将登录/注册动作移动到某个组件,所以我可以从不同的控制器中使用它们,但注册动作有很多其他部分,它使用其他功能和组件,我不想移动所有这些逻辑到组件。

由于

1 个答案:

答案 0 :(得分:0)

您可以修改PHP超级全局,伪造一个帖子请求,CakeRequest解析:

$_POST = array('key' => 'value');
$_SERVER['REQUEST_METHOD'] = 'POST';
$request = new CakeRequest('/posts/view');

然而这是一个黑客,应该避免。我无法想象你想要使用这样的东西。