Конвертировать HTML-таблицы Laravel Blade View в CSV

У меня есть таблица внутри моего блейд-файла, и я пытаюсь экспортировать ее в CSV.

Вот пример моей таблицы, которая содержит данные из контроллера:

 @foreach($data['dailySummary'] as $date=>$day)
<?php
$dateTime = DateTime::createFromFormat('Y-n-j', $date);
$formattedDate = date('d M y', $dateTime->getTimestamp());
?>

<tr>
<td>{{ $formattedDate }}</td>
<td>{{ ($day['day_totals'] != 0) ? $day['day_totals'] : '-' }}</td>

<td>{{ ($day['5_0'] != 0) ? $day['5_0'] : '-' }}<!-- {{ $day['5_0'] }} --></td>
<td>{{ ($day['5_1'] != 0) ? $day['5_1'] : '-' }}</td>
<td>{{ ($day['5_2'] != 0) ? $day['5_2'] : '-' }}</td>

<td>{{ ($day['1_0'] != 0) ? $day['1_0'] : '-' }}</td>
<td>{{ ($day['1_1'] != 0) ? $day['1_1'] : '-' }}</td>
<td>{{ ($day['1_2'] != 0) ? $day['1_2'] : '-' }}</td>

<td>{{ ($day['4_0'] != 0) ? $day['4_0'] : '-' }}</td>
<td>{{ ($day['4_1'] != 0) ? $day['4_1'] : '-' }}</td>
<td>{{ ($day['4_2'] != 0) ? $day['4_2'] : '-' }}</td>

<td>{{ ($day['3_0'] != 0) ? $day['3_0'] : '-' }}</td>
<td>{{ ($day['3_1'] != 0) ? $day['3_1'] : '-' }}</td>
<td>{{ ($day['3_2'] != 0) ? $day['3_2'] : '-' }}</td>

<td>{{ ($day['2_0'] != 0) ? $day['2_0'] : '-' }}</td>
<td>{{ ($day['2_1'] != 0) ? $day['2_1'] : '-' }}</td>
<td>{{ ($day['2_2'] != 0) ? $day['2_2'] : '-' }}</td>

<td>{{ ($day['6_0'] != 0) ? $day['6_0'] : '-' }}</td>
<td>{{ ($day['6_1'] != 0) ? $day['6_1'] : '-' }}</td>
<td>{{ ($day['6_2'] != 0) ? $day['6_2'] : '-' }}</td>

<td>{{ ($day['day_total_price'] != 0) ? '$' . $day['day_total_price'] : '-' }}</td>
</tr>

@endforeach

Проблема в том, что я не уверен, смогу ли я вообще удалить теги html и включить данные из скобок {{}}

Это всего лишь часть того, что я хочу конвертировать в CSV, но я просто хочу посмотреть, есть ли другой способ для блейда. Я знаю, что в Интернете существуют сотни или даже тысячи учебных пособий по html-csv, но не многие из них имеют какое-либо отношение к blade-серверу. Да, это может быть то же самое, что и обычный html, но после того, как я попробовал код, который я использовал для форматирования в csv с использованием обычной html-страницы, он не очень хорошо работал с blade-сервером.

0

Решение

Эта проблема не обязательно специфична для Blade в Laravel, так как это может быть сделано в PHP — уже ответил Вот.

Я лично предпочел бы иметь метод toCSV (), например, в модели, которую вы можете запросить — это более чистый подход.

0

Другие решения

Других решений пока нет …