Отобразить сумму каждого столбца в нижнем колонтитуле Яджра Ларавель

#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',  ]  ]; }