Используя код, который был испечен в CRUD , у меня есть следующий код для удаления элемента :
<?php echo $this->Form->postLink(__('Delete'), array('controller'=>'attachments', 'action' => 'delete', $attachment['Attachment']['id']), null, __('Are you sure you want to delete "%s?"', $attachment['Attachment']['name'])); ?>
Проблема в том, что она лежит в теге FORM , и поэтому в конечном итоге происходит то, что Cake не включает форму, которую будет отправлять postLink .
Есть ли другой способ, который по-прежнему относится к целостности инфраструктуры Cake, которая будет работать даже при увеличении параметров безопасности? Вероятно, это должна быть ссылка на / attachment / delete / id, но выпечка почему-то решила создать форму и опубликовать ее или создать ссылку, поэтому я подумал, что для этого есть причина, и если я так хочу поддержать эту причина.
Вероятно, вы не читали предупреждения в блоке doc относительно этого метода ( http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::postLink )
Этот метод создает элемент
<form>
. Поэтому не используйте этот метод в существующей форме. Вместо этого вы должны добавить кнопку отправки с помощьюFormHelper::submit()
Так что не делай этого. Вам нужно будет записать буфер и вывести его позже (см. Этот закрытый PR ).
У меня такая же проблема в cakephp 3.0 $this->Form->postLink()
не работала для первой записи.
Затем я делаю некоторые исследования и разработки, но не нашел ничего полезного. Затем я делаю некоторые изменения в теге формы и $this->Form->postLink()
. Я удаляю $this->Form->create()
из .ctp-файлов и использую только $this->Form->postLink();
и он начинает работать.
Не используйте $this->Form->postLink()
внутри любого другого тега формы, то есть $this->Form->create(null, ['url' => ['action' => 'ExportCustomers']]);
Если вы хотите, то и то, что вам нужно настроить $this->Form->postLink()
и тег формы, в соответствии с этим не будет влиять друг на друга.