/** * Render the table rows for a non-ajax datatable * * @param DataResult $dataResult * @return string */ protected function renderStaticData(DataResult $dataResult) { $data = $dataResult->getData(); $html = ''; foreach ($data as $object) { $row = ''; foreach ($this->config->getColumns() as $column) { $value = $this->getDataForColumn($object, $column); if ($column->isVisible()) { $row .= "<td>{$value}</td>"; } else { $row .= "<td style=\"display: none;\">{$value}</td>"; } } $html .= "<tr>{$row}</tr>"; } return $html; }
/** * Render the return JSON data for the AJAX request with the DataTable_DataResult * returned from the current DataTable's loadData() method * * @param DataResult $result * @return string */ protected function renderReturnData(DataResult $result, Request $request) { $rows = []; foreach ($result->getData() as $object) { $row = []; foreach ($this->config->getColumns() as $column) { $row[] = $this->getDataForColumn($object, $column); } $rows[] = $row; } $data = ['iTotalRecords' => $result->getNumTotalResults(), 'iTotalDisplayRecords' => !is_null($result->getNumFilteredResults()) ? $result->getNumFilteredResults() : $result->getNumTotalResults(), 'aaData' => $rows, 'sEcho' => $request->getEcho()]; return $data; }