В cakephp 3 я получил ошибку Неожиданное поле в данных POST

В cakephp 3 я получил ошибку Неожиданное поле в данных POST. На самом деле этого поля нет в моей таблице, но я хочу использовать его в контроллере.


person Masud    schedule 19.07.2017    source источник
comment
Добро пожаловать в StackOverflow, мой друг! Пожалуйста, покажите нам свой код, если вы хотите, чтобы мы вам помогли! В противном случае ваш вопрос может быть закрыт, потому что сейчас на него нельзя ответить.   -  person C Travel    schedule 19.07.2017


Ответы (2)


Компонент безопасности в CakePHP не прощает ошибок. Если вы хотите разрешить поле, которое не должно проходить через процесс хеширования компонента безопасности, вам нужно использовать метод unlockedField, который поставляется с классом FormHelper как таковой:

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

Если это не сработает, вам нужно будет предоставить нам соответствующий код.

person AKKAweb    schedule 19.07.2017
comment
мы не должны использовать unlockField('field'). Это может вызвать серьезные проблемы с безопасностью. - person Invincible; 20.09.2018

Я получал аналогичную ошибку в 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.

person kantsverma    schedule 28.08.2017