laravel 如何依据查询结果进行导出excel 

1.思路

  • 路由添加一个可选参数 例子 export?
  • 然后根据控制器中的筛选结果进行判断参数是否可以进行导出
  • 先判断可选参数 export是否存在如果存在进行导出excel表,否则的话就是返回前端的全部信息接口

2.逻辑示例

示例路由

此路由代表参数export存在或不存在

用于定义存在的时候只导出excel,不存在的时候显示返回前端的全部信息

 Route::get('students/{export?}', 'StudentsController@index');

示例业务逻辑

#$export参数默认设置为空
 public function index(Request $request, $export = null)
    {
      #这里编写筛选条件业务逻辑
        }
        //excel导出 如果不为空意味着是进行excel表的导出
        if (!empty($export)) {
         #使用事件进行导出表
            event(new ExportStudentsStatisticalExcel(这里传参筛选出的集合));
        } else {
          #否则的花返回筛选条件业务逻辑
            return $this->success($statistics);
        }
    }

excel这里不展示具体的导出业务逻辑,不懂的可以看我以前写的博客laravel事件&&excel导出

以上就是根据查询结果进行excel导出的逻辑思路,不懂的可以回复我

posted @ 2021-02-22 21:03  以己为镜  阅读(226)  评论(0编辑  收藏  举报