В настоящее время я впервые работаю над 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
Функция Excel в контроллере билетов:
public function exportxls(){
Excel::create('tickets', function($excel){
$excel->sheet('tickets', function($sheet){
$sheet->loadView('export.ticketsexcel');
})->export('xls');
});
return redirect('/');
}
Заранее спасибо.
Вам нужен метод в `App \ Tickets`, который фильтрует по диапазону дат.
Итак, на данный момент моя кнопка экспортирует элементы моих билетов из всех билетов в базе данных. Я хочу иметь возможность экспортировать только билеты, созданные каждую неделю в соответствии с текущей неделей. Я знаю, что у laravel есть временные метки, но я не знаю, как это работает.
Я знаю, как фильтровать по диапазону дат в MySQL, но я не знаю, как это сделать с помощью Laravel, для меня это довольно ново.






Вы должны были отправить данные из контроллера в представление и экспортировать только еженедельные тикеты, которые вы можете изменить в своем запросе.
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
Надеюсь, это вам поможет.
Я попробовал ваш ответ, но использовал Tickets :: whereBetween вместо \ App \ Tickets-> whereBetween, потому что он отображал ошибку: Ошибка анализа: синтаксическая ошибка, неожиданный '->' (T_OBJECT_OPERATOR). Затем я получил эту ошибку: Неопределенная переменная: weeklyTickets. Есть идеи, почему он не распознает переменную?
Пожалуйста, проверьте обновленный ответ, я передал $ weeklyTickets для использования внутри анонимной функции.
Это работает, но это не совсем то, что мне нужно. Можно ли приобрести билеты с понедельника по пятницу текущей недели. Например, сегодня среда, можно ли получить все билеты, созданные с понедельника по сегодняшний день?
пожалуйста, экспалин
weekly ticketsи как вы этого хотите?