В cakephp 3 я получил ошибку Неожиданное поле в данных POST. На самом деле этого поля нет в моей таблице, но я хочу использовать его в контроллере.
В cakephp 3 я получил ошибку Неожиданное поле в данных POST
Ответы (2)
Компонент безопасности в CakePHP не прощает ошибок. Если вы хотите разрешить поле, которое не должно проходить через процесс хеширования компонента безопасности, вам нужно использовать метод unlockedField
, который поставляется с классом FormHelper
как таковой:
$this->Form->unlockField('field');
Если это не сработает, вам нужно будет предоставить нам соответствующий код.
Я получал аналогичную ошибку в 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() ?>
Эта работа формирует меня и устраняет ошибку Неожиданное поле в данных POST в cakephp 3.4.