Я хочу создать ссылку для удаления Cakephp delete в форме, как показано ниже. Но самая первая кнопка удаления сообщения не включает delete Form, когда я проверяю в браузере и не могу удалить, но остальные включают в себя, как я хочу, и могу удалить.
Это ошибка cakephp или что-то, что мне нужно, чтобы изменить исходный код?
<?php echo $this->Form->create('Attendance', array('required' => false, 'novalidate' => true)); foreach($i = 0; $i < 10; i++): echo $this->Form->input('someinput1', value => 'fromdb'); echo $this->Form->input('someinput2', value => 'fromdb'); echo $this->Form->postLink('Delete',array('action'=>'delete',$attendanceid),array('class' => 'btn btn-dark btn-sm col-md-4','confirm' => __('Are you sure you want to delete'))); endforeach; echo $this->Form->button('Submit', array('class' => 'btn btn-success pull-right')); echo $this->Form->end(); ?>
Формы не могут быть вложенными , стандарт HTML запрещает это по определению. Если вы попытаетесь, большинство браузеров выведут вложенную форму и выведут ее содержимое вне родительской формы.
Если вам нужны ссылки для публикации внутри существующих форм, то вы должны использовать inline
или block
параметры (доступные с CakePHP 2.5, inline
была удалена в CakePHP 3.x), так что новая форма устанавливается в блок представления, который могут отображаться вне основной формы.
CakePHP 2.x
echo $this->Form->postLink( 'Delete', array( 'action' => 'delete', $attendanceid ), array( 'inline' => false, // there you go, disable inline rendering 'class' => 'btn btn-dark btn-sm col-md-4', 'confirm' => __('Are you sure you want to delete') ) );
CakePHP 3.x
echo $this->Form->postLink( 'Delete', [ 'action' => 'delete', $attendanceid ], [ 'block' => true, // disable inline form creation 'class' => 'btn btn-dark btn-sm col-md-4', 'confirm' => __('Are you sure you want to delete') ] );
Закройте форму формы и формы вывода сообщений
// ... echo $this->Form->end(); // ... echo $this->fetch('postLink'); // output the post link form(s) outside of the main form
Смотрите также
CakePHP 2.x
CakePHP 3.x