我正在尝试将POST变量传递给我的一个控制器,但是我是从静态页面执行此操作(我知道,这不是最干净,最有效的方法。但是为了学习...)。如果在没有FormHelper表单的情况下发送POST数据,如何在控制器中读取该POST变量?
我使用jQuery ajax发布数据,因此没有CakePHP原生“FormHelper”。
这有意义吗?如果我需要详细说明,请告诉我。我感谢您提供的任何帮助:)
答案 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());
}
请进一步参考,请阅读手册。对自己来说,自己解决这个问题会更容易,更好。
答案 3 :(得分:0)
对于CakePHP 2.x,它是
$this->request->data['ModelName']['field_name'];
或
$_POST['data']['ModelName']['field_name'];
建议使用第一个选项。