首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Laravel导出Excel

用Laravel导出Excel
EN

Stack Overflow用户
提问于 2021-06-18 22:43:20
回答 1查看 483关注 0票数 0

**我在传递导出文件中的参数时遇到问题,我想根据页面上选定的日期过滤导出。希望你能帮我解决这个问题。谢谢**

--这是我的ExportController,我从表单请求数据到我的控制器,以给导出集合一个日期。

代码语言:javascript
复制
namespace App\Http\Controllers;
use Illuminate\Http\Response;
use Illuminate\Http\Request;
use App\Exports\ExportAttendance;
use Maatwebsite\Excel\Facades\Excel;
class ExportController extends Controller
{

    
    public function export(Request $request)
    {
     
      
        return Excel::download(new ExportAttendance($request->input('min'),$request->input('max')),'Attendance.xlsx');
    }
}

这是我的ExportAttendance.php,这是负责出口的收藏品。在查询函数上,我希望根据控制器上请求的日期过滤数据。我如何将数据从控制器传递给我的Export.php,我确实使用了构造函数,但它总是返回错误。

代码语言:javascript
复制
public function headings():array{
        return[
            
            'Name',
            'In (AM)',
            'Out (AM)',
            'In (PM)',
            'Out (PM)',
            'Meeting',
            'Task',
            'Note',
            'Total Hours',
            'Date'

        ];
    }
    public function query()
    { 
        $start = "2021-06-14";
        $end = "2021-06-14";

        return Attendance::select('Name','InAm','OutAM','InPM','OutPM','Meeting','SpecialTask','Undertime','TotalHours','Date')->whereBetween('Date',[$start,$end]);
    }
    public function collection()
    {
        
        return Attendance::all();

    }
    public function map($attendance):array
    {
        return[
            $attendance->Name,
            $attendance->InAM,
            $attendance->OutAM,
            $attendance->InPM,
            $attendance->OutPM,
            $attendance->Meeting,
            $attendance->SpecialTask,
            $attendance->Undertime,
            $attendance->TotalHours,
            $attendance->Date,
        ];
   
      
    }
EN

回答 1

Stack Overflow用户

发布于 2021-06-18 23:59:48

而不是将$request对象传递给导出类。您可以简单地使用request助手方法。

代码语言:javascript
复制
public function query()
    { 
        return Attendance::select('Name','InAm','OutAM','InPM','OutPM','Meeting','SpecialTask','Undertime','TotalHours','Date')
            ->whereBetween('Date',[request('start'), request('end')]);
    }

传递参数也应该有效。请让我知道你看到什么错误,以便我可以更新我的答案。

我用了结构体

代码语言:javascript
复制
    public function query()
        { 
            $start = "2021-06-14";
            $end = "2021-06-14";
    return Attendance::select('Name','InAm','OutAM','InPM','OutPM','Meeting','SpecialTask','Undertime','TotalHours','Date')->where('Date','=',$this->year);
}

这是我的控制器,

代码语言:javascript
复制
    public function export(Request $request)
        {
          ob_start();
          $datestart = $request->input('min');
          $datestart = ob_get_contents();
         
        
          return Excel::download(new ExportAttendance($datestart),'Attendance.xlsx');
          ob_end_flush();
    
    }

另一个问题是,当我使用ob_end_clean()时,我的所有变量值都返回空值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68042126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档