在没有 formhelper 的情况下使用 CakePHP 检索 POST 数据

发布于 2024-12-11 10:27:44 字数 234 浏览 0 评论 0原文

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

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

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

I'm trying to pass a POST variable to one of my controllers, however I'm doing this from a static page (I know, not the cleanest and most efficient way to go about things. But for the sake of learning...). How can I read that POST variable in my controller if the POST data is being sent without a FormHelper form?

I'm posting the data using jQuery ajax, so this is without the CakePHP native "FormHelper".

Does this make sense? Let me know if I need to elaborate. I appreciate any help you can provide :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

忆悲凉 2024-12-18 10:27:44

您应该能够通过以下方式访问数据:

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

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

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

You should be able to access the data with:

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

And if you follow the naming convention used by the FormHelper and name your input field like data[ModelName][FieldName], then you can access the data as usual with:

$this->data['ModelName']['FieldName']
海的爱人是光 2024-12-18 10:27:44

不要忘记 Cake 只是 PHP。

class BazController extends AppController {

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

}

是完全有效的。但我会按照 @dhofstet 的建议去做,因为它更“蛋糕”。

Don't forget Cake is just PHP.

class BazController extends AppController {

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

}

is perfectly valid. But I would do as @dhofstet suggests as it's much more "cakey".

素衣风尘叹 2024-12-18 10:27:44

您应该能够通过以下方式访问表单发布数据:

对于 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());
}

请参阅手册以获取更多参考。对你自己来说,自己解决这个问题会更容易、更好。

CakePHP 2.x 文档

CakePHP 3 文档

You should able to access form post data with:

For CakePHP 2.x

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

For CakePHP 3.4.x

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

Please for further reference, read the manual. It's so much easier and better for yourself to figure it out by yourself.

Documentation for CakePHP 2.x

Documentation for CakePHP 3

满天都是小星星 2024-12-18 10:27:44

对于 CakePHP 2.x 是

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

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

建议使用第一个选项。

For CakePHP 2.x it is

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

or

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

The first option is recommended.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文