Laravel + layuiAdmin 后台的删除与批量删除

博客介绍了在Laravel中实现删除与批量删除功能的方法,二者共用一个控制器方法,JS代码中的AJAX都提交到该控制器。详细给出了删除功能的JS代码、批量删除功能的按钮HTML及JS代码,还展示了Laravel控制器中destroy()方法代码和路由。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

删除与批量删除功能共用一个控制器方法

JS 代码中的 AJAX 都是提交到这个控制器

1、删除功能

红色框中是Tabel组件中数据的删除功能按钮
删除功能的 JS 代码

  //监听工具条
  table.on('tool(LAY-app-content-list)', function(obj){
    var data = obj.data;
    if(obj.event === 'del'){
      layer.confirm('确定删除此文章?', function(index){
        // 提交 Ajax
        layer.msg('正在删除...', {icon: 16,shade: 0.3,time:5000});
        $.post("/api/article/"+data.id+"", {"_method": "DELETE"}, function(result) {
          layer.closeAll('loading');
          if (result.code == 200) {
            layer.msg(result.msg, {icon:6, time:1500}, function() {
              table.reload('LAY-app-content-list');
            });
          } else {
            layer.msg(result.msg, { icon: 5, time:1500});
          }
        });
        // Ajax 结束
      });
    }
  });

2、批量删除功能

红色框中为多选和批量删除按钮
批量删除功能按钮的HTML代码

<button class="layui-btn layuiadmin-btn-list" data-type="batchdel">删除</button>

data-type=“batchdel” 注意这个属性,JS中会用到。

批量删除功能的 JS 代码

    var active = {
      batchdel: function(){
        var checkStatus = table.checkStatus('LAY-app-content-list')
        ,checkData = checkStatus.data; //得到选中的数据

        if(checkData.length === 0){
          return layer.msg('请选择数据');
        }

        var ids = [];   //声明数组
        for (var i = 0; i < checkData.length; i++) {
          ids.push(checkData[i].id);
        }
        //console.log(ids);
        layer.confirm('你确定要删除这 ' + checkData.length + ' 条数据吗?', { icon: 3, title: '提示'}, function(index) {
          //执行 Ajax 后重载
          layer.msg('正在删除...', {icon: 16,shade: 0.3,time:5000});
          $.post("/api/article/"+ids+"", {"_method": "DELETE"}, function(result) {
            layer.closeAll('loading');
            if (result.code == 200) {
              layer.msg(result.msg, {icon:6, time:1500}, function() {
                table.reload('LAY-app-content-list');
              }) 
            } else {
              layer.msg(result.msg, { icon: 5, time:1500});
            }
          });
          // Ajax 结束

        });
      }
    };

Larave 控制器中 destroy() 方法代码

    // 删除文章
    public function destroy($id)
    {
        $ids = is_array($id) ? $ids : ( is_string($id) ?explode (',',$id) :func_get_args());
        $del = Article::destroy($ids);   // destroy()返回删除的记录数
        if ( $del > 0 ) {
            $result = ['code' => 200, 'msg' => 'ID:'.$id.' 删除成功!'];
        } else {
            $result = ['msg' => 'ID:'.$id.' 删除失败!'];
        }

        return $result;
    }

Laravel 路由

Route::prefix('/article') -> namespace('Api') -> group(function () {
	Route::delete('/{id}', 'ArticleController@destroy');     //URL:api/article/ID
});

----------------=ENG=----------------

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值