Первый postLink () не создает форму

Используя код, который был испечен в 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, но выпечка почему-то решила создать форму и опубликовать ее или создать ссылку, поэтому я подумал, что для этого есть причина, и если я так хочу поддержать эту причина.

Solutions Collecting From Web of "Первый postLink () не создает форму"

Вероятно, вы не читали предупреждения в блоке 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() и тег формы, в соответствии с этим не будет влиять друг на друга.