如何在Laravel Excel中仅导出今天的记录



我只想从我的表中导出今天的记录,而不是整个数据,我使用了Carbon,它也不起作用,它只是简单地导出空的excel文件。我在这里分享我的代码快照,请帮帮我。我使用的是laravel 7和最新版本的laravel Excel包。

<?php
namespace AppExports;
use AppCosQueue;
use MaatwebsiteExcelConcernsFromCollection;
use MaatwebsiteExcelConcernsShouldAutoSize;
use MaatwebsiteExcelConcernsWithStyles;
use PhpOfficePhpSpreadsheetWorksheetWorksheet;
use MaatwebsiteExcelConcernsWithHeadings;
use MaatwebsiteExcelConcernsWithEvents;
use MaatwebsiteExcelEventsAfterSheet;
use CarbonCarbon;
class CosQueueExport implements FromCollection, WithHeadings, ShouldAutoSize, WithEvents
{
/**
* @return IlluminateSupportCollection
*/
public function collection()
{
$todaydate = date('Y-m-d');
return CosQueue::get(array('full_name', 'job_title','meeting_with','subject','date'))->where('created_at',$todaydate);

}

public function headings():array{
return[
"اسم",
'وظیفه',
'ملاقات با',
'موضوع',
'تاریخ'
];
}
public function registerEvents(): array
{

return [
AfterSheet::class    => function(AfterSheet $event) {
$cellRange = 'A1:W1'; // All headers
$event->sheet->getDelegate()->getStyle($cellRange)->getFont()->setSize(14);
$event->sheet->getDelegate()->getStyle($cellRange)->getFont()->setName('calibri');

},
];

}

}

您可以执行以下之一

public function collection()
{
// Carbon::today() === today()
return CosQueue::whereDate('created_at', Carbon::today())->get(array('full_name', 'job_title','meeting_with','subject','date'));
}

另外,你可以做

public function collection()
{
return CosQueue::whereDate('created_at', date('Y-m-d'))->get(array('full_name', 'job_title','meeting_with','subject','date')); 
}

最新更新