Экспорт только еженедельных билетов в Excel (веб-сайт поддержки) - Laravel

В настоящее время я впервые работаю над 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('/');
    }

Заранее спасибо.

пожалуйста, экспалин weekly tickets и как вы этого хотите?

arun 16.05.2018 11:19

Вам нужен метод в `App \ Tickets`, который фильтрует по диапазону дат.

mulquin 16.05.2018 11:24

Итак, на данный момент моя кнопка экспортирует элементы моих билетов из всех билетов в базе данных. Я хочу иметь возможность экспортировать только билеты, созданные каждую неделю в соответствии с текущей неделей. Я знаю, что у laravel есть временные метки, но я не знаю, как это работает.

Sam 16.05.2018 11:25

Я знаю, как фильтровать по диапазону дат в MySQL, но я не знаю, как это сделать с помощью Laravel, для меня это довольно ново.

Sam 16.05.2018 11:27
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
105
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны были отправить данные из контроллера в представление и экспортировать только еженедельные тикеты, которые вы можете изменить в своем запросе.

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. Есть идеи, почему он не распознает переменную?

Sam 16.05.2018 11:47

Пожалуйста, проверьте обновленный ответ, я передал $ weeklyTickets для использования внутри анонимной функции.

Kamal Paliwal 16.05.2018 12:24

Это работает, но это не совсем то, что мне нужно. Можно ли приобрести билеты с понедельника по пятницу текущей недели. Например, сегодня среда, можно ли получить все билеты, созданные с понедельника по сегодняшний день?

Sam 16.05.2018 12:41

Другие вопросы по теме