#laravel #laravel-8
Вопрос:
На следующем снимке экрана показан список результатов базы данных, если включить обработку на стороне сервера. Он показывает общее количество столбцов, вычисленное с помощью таблиц данных Яджры.
HTML-код для таблиц данных с общим количеством столбцов
Чтобы отобразить нижний колонтитул с помощью html-конструктора, передайте значение true в качестве 2-го аргумента $builder-gt;table([], true)
api.
{!! $dataTable-gt;table([], true) !!}
скрипт обновите значения th
@push('scripts') {!! $dataTable-gt;scripts() !!} lt;scriptgt; var hours = JSON.parse("{{json_encode($hours)}}"); $(document).ready(function(){ $("tfoot trgt;th:nth-child(2)").text("Total") for (let i = 0; i lt; hours.length; i ) { $('tfoot trgt;th:nth-child(' (i 3) ')').text(hours[i]) } }) lt;/scriptgt; @endpush
Файл с данными Отчета
В функции запроса мы получаем запись отчетов из базы данных и используем результат запроса в функции DataTable, создаем столбец в соответствии с нашими требованиями и, наконец, устанавливаем значения для функции getColumns.
public function dataTable($query) { $reports = ($query['data']); return datatables()-gt;make($reports) -gt;addColumn('name', function ($reports) { return isset($reports['user_name']) ? $reports['user_name'] : null; }) -gt;addColumn('monday', function ($reports) { return isset($reports['Mon']) ? ($reports['Mon']) : '-'; }) -gt;addColumn('tuesday', function ($reports) { return isset($reports['Tue']) ? $reports['Tue'] : '-'; }) -gt;addColumn('wednesday', function ($reports) { return isset($reports['Wed']) ? $reports['Wed'] : '-'; }) -gt;addColumn('thursday', function ($reports) { return isset($reports['Thu']) ? $reports['Thu'] : '-'; }) -gt;addColumn('friday', function ($reports) { return isset($reports['Fri']) ? $reports['Fri'] : '-'; }) -gt;addColumn('total', function ($reports) { return (isset($reports['Mon']) ? $reports['Mon'] : 0) (isset($reports['Tue']) ? $reports['Tue'] : 0) (isset($reports['Wed']) ? $reports['Wed'] : 0) (isset($reports['Thu']) ? $reports['Thu'] : 0) (isset($reports['Fri']) ? $reports['Fri'] : 0); }) -gt;addIndexColumn(); } public function query(Lot $model) { $data = Reports.....; return compact('data'); } public function html() { return $this-gt;builder() -gt;setTableId('userrequestdatatable-table') -gt;columns($this-gt;getColumns()) -gt;minifiedAjax() -gt;dom('Bfrtip') -gt;orderBy(1) -gt;buttons( Button::make('export'), ); } protected function getColumns() { return [ '#' =gt; [ 'data' =gt; 'DT_RowIndex', 'name' =gt; 'DT_RowIndex', 'orderable' =gt; false, 'searchable' =gt; false ], 'user name'=gt; [ 'data' =gt; 'name', 'name' =gt; 'name', ], 'monday'=gt; [ 'data' =gt; 'monday', 'name' =gt; 'monday', ], 'tuesday'=gt; [ 'data' =gt; 'tuesday', 'name' =gt; 'tuesday', ], 'wednesday'=gt; [ 'data' =gt; 'wednesday', 'name' =gt; 'wednesday', ], 'thursday'=gt; [ 'data' =gt; 'thursday', 'name' =gt; 'thursday', ], 'friday'=gt; [ 'data' =gt; 'friday', 'name' =gt; 'friday', ], 'total'=gt; [ 'data' =gt; 'total', 'name' =gt; 'total', ] ]; }