Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Excel仅导出周票证(支持票证网站)-Laravel_Php_Mysql_Excel_Laravel_Export To Excel - Fatal编程技术网

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

Php Excel仅导出周票证(支持票证网站)-Laravel,php,mysql,excel,laravel,export-to-excel,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}}</

我目前第一次在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

提前感谢。

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

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('/');
}
在此函数中,根据数据库字段更改“created_at”字段

在视图中,您可以这样修改它:

@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
@foreach($weeklyTickets作为$ticket)
{{$ticket->societe}
{{$ticket->intervenant}
{{$ticket->assistance->level}
{{$ticket->message}
{{$ticket->urgence->niveau}
{{$ticket->statut}
{{$ticket->use-ateur->name}
@endforeach

希望这对您有所帮助。

请在
每周票证中导出
以及您想要的方式?您需要在'App\tickets'中使用一种按日期范围过滤的方法。因此,目前基本上我的按钮从数据库的所有票证中导出票证的元素。我想要的是能够仅导出每周根据当前周创建的票证。我知道laravel有时间戳,但我不知道它是如何工作的。我知道如何在MySQL中按日期范围进行过滤,但我不知道如何使用laravel进行过滤,这对我来说很新。我尝试了你的答案,但我使用了Tickets::whereween而不是\App\Tickets->whereween,因为它显示了一个错误:解析错误:语法错误,意外的“-->”(T_对象_运算符)。然后我得到了这个错误:未定义的变量:weeklyTickets。你知道为什么它不能识别这个变量吗?请检查更新的答案,我已经传递了$weeklyTickets以在匿名函数中使用。它可以工作,但它不是我想要的。是否可以获得本周周一到周五的票。例如,今天是周三是的,有可能从周一到今天得到所有创建的票吗?
@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