Excel仅导出每周票证(支持票证网站) - Laravel

时间:2018-05-16 09:14:08

标签: php mysql excel laravel export-to-excel

我目前正在第一次使用Laravel,我遇到了一个问题。我的票证列表页面上有一个导出excel按钮,但它导出了所有已创建的票证。有没有办法只根据当前日期以excel格式导出每周票?

excel表格:

@foreach (\App\Tickets::All() as $ticket)
    <tr>
    <td>{{ $ticket->societe}}</td>
    <td>{{ $ticket->intervenant}}</td>
    <td>{{ $ticket->assistance->level}}</td>
    <td>{{ $ticket->message}}</td>
    <td>{{ $ticket->urgence->niveau}}</td>
    <td>{{ $ticket->statut}}</td>
    <td>{{ $ticket->utilisateur->name}}</td>
    </tr>
  @endforeach

ticketcontroller中的Excel函数:

public function exportxls(){
      Excel::create('tickets', function($excel){
        $excel->sheet('tickets', function($sheet){
          $sheet->loadView('export.ticketsexcel');
        })->export('xls');
      });
      return redirect('/');
    }

提前致谢。

1 个答案:

答案 0 :(得分:0)

您应该已将数据从控制器发送到视图,并且只导出每周票证,您可以修改查询。

public function exportxls(){
  $weeklyTickets = \App\Tickets::whereBetween('created_at', array(date("Y-m-d", strtotime("-7 days")), date('Y-m-d'))->get();

  Excel::create('tickets', function($excel) use ($weeklyTickets){
    $excel->sheet('tickets', function($sheet) use ($weeklyTickets){
      $sheet->loadView('export.ticketsexcel', array('weeklyTickets' => $weeklyTickets));
    })->export('xls');
  });
  return redirect('/');
}

在此功能中更改&#34; created_at&#34;根据您的数据库字段填写字段。

在视图中你可以像这样修改它:

@foreach ($weeklyTickets as $ticket)
<tr>
<td>{{ $ticket->societe}}</td>
<td>{{ $ticket->intervenant}}</td>
<td>{{ $ticket->assistance->level}}</td>
<td>{{ $ticket->message}}</td>
<td>{{ $ticket->urgence->niveau}}</td>
<td>{{ $ticket->statut}}</td>
<td>{{ $ticket->utilisateur->name}}</td>
</tr>
@endforeach

希望这会对你有所帮助。