【问题标题】:In cakephp 3 I got error Unexpected field in POST data在 cakephp 3 中,POST 数据中出现错误 Unexpected field
【发布时间】:2017-12-24 09:41:19
【问题描述】:

在 cakephp 3 中,POST 数据中出现错误 Unexpected field。 实际上该字段不在我的表中,但我想在控制器中使用。

【问题讨论】:

  • 欢迎来到 StackOverflow 我的朋友!如果您希望我们帮助您,请向我们展示您的代码!否则你的问题可能会被关闭,因为现在回答的范围太广了..

标签: cakephp-3.2


【解决方案1】:

CakePHP 中的安全组件是不宽容的。如果您想允许不应通过安全组件散列过程的字段通过,则需要使用 FormHelper 类附带的 unlockedField 方法,如下所示:

$this->Form->unlockField('field');

如果这不起作用,您需要向我们提供相关代码

【讨论】:

  • 我们不应该使用 unlockField('field')。这可能会导致严重的安全问题。
【解决方案2】:

我在 cakephp 3.4 中遇到了类似的错误,我使用的是简单的 html 表单和输入字段。我在数组中传递输入字段数据。如下:-

<form action="" method="post">    
<input name="data[1][category_1]" id="category_1">
</form>

然后我做了一些研发,发现我们需要使用 cakephp 表单助手来创建表单及其字段,如下所示:-

如果在数组中传递表单数据

<?= $this->Form->create($user, ['url' => ['controller' => 'Users', 'action' => 'saveOrder']]); ?>
    <?= $this->Form->input("Data.1.category_1"); ?>
<?= $this->Form->end() ?>

如果是简单的输入字段,您可以执行如下代码

<?= $this->Form->create($user, ['url' => ['controller' => 'Users', 'action' => 'saveOrder']]); ?>
    <?= $this->Form->input("category"); ?>
<?= $this->Form->end() ?>

这项工作形成了我并解决了 cakephp 3.4 中 POST 数据中的错误 Unexpected field

【讨论】:

    猜你喜欢
    • 2016-11-05
    • 1970-01-01
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多