使用CakePHP检索POST数据而不使用formhelper

时间:2011-10-20 03:02:36

标签: php cakephp post

我正在尝试将POST变量传递给我的一个控制器,但是我是从静态页面执行此操作(我知道,这不是最干净,最有效的方法。但是为了学习...)。如果在没有FormHelper表单的情况下发送POST数据,如何在控制器中读取该POST变量?

我使用jQuery ajax发布数据,因此没有CakePHP原生“FormHelper”。

这有意义吗?如果我需要详细说明,请告诉我。我感谢您提供的任何帮助:)

4 个答案:

答案 0 :(得分:6)

您应该可以使用以下方式访问数据:

$this->params['form']['YOUR_VARIABLE_NAME']

如果您遵循FormHelper使用的命名约定并将输入字段命名为data[ModelName][FieldName],那么您可以像往常一样访问数据:

$this->data['ModelName']['FieldName']

答案 1 :(得分:6)

别忘了Cake只是PHP。

class BazController extends AppController {

    function foo() {
        $foo = $_POST['bar'];
        $this->set('foobar', $foo);
    }

}

完全有效。但我会像@dhofstet所说的那样做,因为它更像是“蛋糕”。

答案 2 :(得分:2)

您应该可以使用以下方式访问表单发布数据:

对于CakePHP 2.x

if ($this->request->is('post')) {
    pr($this->request->data);
}

对于CakePHP 3.4.x

if ($this->request->is('post')) {
    pr($this->request->getData());
}

请进一步参考,请阅读手册。对自己来说,自己解决这个问题会更容易,更好。

Documentation for CakePHP 2.x

Documentation for CakePHP 3

答案 3 :(得分:0)

对于CakePHP 2.x,它是

$this->request->data['ModelName']['field_name'];

$_POST['data']['ModelName']['field_name'];

建议使用第一个选项。