/** * Prepare columns config */ protected function prepareColumnsConfig() { $columns = []; foreach ($this->table->getColumns() as $column) { $columns[] = $column->getProperties(); } $this->table->setColumns($columns); }
/** * Get data * * @return array */ protected function getData() { $data = []; foreach ($this->data as $dataValue) { $row = []; foreach ($this->table->getColumns() as $column) { if ($column instanceof ColumnInterface) { $row[$column->getData()] = $column->getContent($dataValue); continue; } if (is_callable($column->getFormatter())) { $row[$column->getData()] = call_user_func_array($column->getFormatter(), [$dataValue[$column->getData()], $dataValue]); } else { $row[$column->getData()] = (string) $dataValue[$column->getData()]; } } $data[] = $row; } return $data; }
/** * Returns the column used as the X axis * * If no column has been specified, the first column is returned. * * @api * @since 1.0.0 * * @return DataTable\Column */ protected function getXAxis() { $columns = $this->data->getColumns(); return isset($this->xAxis) ? $this->xAxis : $this->setXAxis(reset($columns)); }
/** * Prepare CakePHP order * * @param Request $request DataTable request */ protected function prepareOrder(Request $request) { foreach ($request->getOrder() as $order) { $this->query->order([$this->table->getColumns()[$order->getColumn()]->getData() => strtoupper($order->getDir())]); } }