首页 > 解决方案 > 删除和确认消息中不允许的方法未显示 Cakephp 3

问题描述

我一直在尝试一次删除多个用户的功能,但它给了我错误消息“方法不允许”,删除时我也没有收到确认消息

控制器 :

public function deleteselected()

{
$this->request->allowMethod(['user', 'delete']);
$data = $this->request->getData('ids');
foreach ($data as $value) {
    $this->Users->deleteAll(['id'=>$value]);
}
return $this->redirect(['action'=>'index']);
}

索引脚本:

<script>
$('.selectall').click(function(){
 $('.selectbox').prop('checked',$(this).prop('checked'));
$('.selectall2').prop('checked',$(this).prop('checked'));
});
$('.selectall2').click(function(){
$('.selectbox').prop('checked',$(this).prop('checked'));
$('.selectall').prop('checked',$(this).prop('checked'));
});
$('.selectbox').click(function(){
var total = $('.selectbox').length;
var number = $('.selectbox:checked').length;
if(total == number){
 $('.selectall').prop('checked', true);
$('.selectall2').prop('checked', true);
}else {
$('.selectall').prop('checked', false);
$('.selectall2').prop('checked', false);
 }});
</script>

索引按钮:

<form method="user">
 <p>
<button type="submit" formaction="<?php echo $this->Url- 
>build(['action'=>'deleteselected']) ?>" class="btn btn-danger">Delete 
Selected</button>
</p> 
   <tr>
        <th><input type="checkbox" class="selectall"/></th>
   </tr>
 <td><input type="checkbox" class="selectbox" name="ids[]" value="<?php 
 echo $user->id ?>" 
  /></td>

<button type="submit" formaction="<?php echo $this->Url->build(['action' 
=>'delete', $user->id]) ?>" class="btn btn-danger" onclick="return 
confirm('Are you sure?)">Delete</button>

标签: cakephp

解决方案


显示确认消息和方法成功运行try this code


模板 (index.ctp)

<?php

    $user_data = [
        '12',
        '13',
        '14',
        '15',
    ]
?>
<form method="post">
<p>
    <button type="submit" formaction="<?php echo $this->Url->build(['action'=>'deleteselected']) ?>" class="btn btn-danger" onclick="return confirm('Are you sure you want to delete users?')">
        Delete Selected
    </button>
</p>
<table>
    <tr>
        <th><input type="checkbox" class="selectall"/></th>
        <th>User ID</th>
        <th>Action</th>
    </tr>
    <?php foreach ($user_data as $key => $id) { ?>
        <tr>
            <td>
                <input type="checkbox" class="selectbox" name="ids[]" value="<?= $id ?>"/>
            </td>
            <td><?= $id ?></td>
            <td>
                <button type="submit" formaction="<?php echo $this->Url->build(['action' =>'delete', $id]) ?>" class="btn btn-danger" onclick="return confirm('Are you sure?')">
                    Delete
                </button>
            </td>
        </tr>
    <?php } ?>
</table>
</form>

控制器

public function deleteselected()
{
   $this->request->allowMethod(['post', 'delete']);
   $data = $this->request->getData('ids');
   print_r($data);exit;
}

推荐阅读