public function testApplyTo() { $fields = array("title" => 'p.name', "_identifier_" => 'p.id'); $r = new Renderer($this->_container, array(1 => array('view' => 'AliDatatableBundle:Renderers:_actions.html.twig', 'params' => array('edit_route' => 'alidatatable_test_edit', 'delete_route' => 'alidatatable_test_delete', 'delete_form_prototype' => $this->_datatable->getPrototype('delete_form')))), $fields); $data = array(array('something', 'eee')); $r->applyTo($data, array((object) array())); $this->assertContains('form', $data[0][1]); }
/** * execute * * @param int $hydration_mode * * @return JsonResponse */ public function execute($hydration_mode = Query::HYDRATE_ARRAY) { $request = $this->_request; $iTotalRecords = $this->_queryBuilder->getTotalRecords(); list($data, $objects) = $this->_queryBuilder->getData($hydration_mode); $id_index = array_search('_identifier_', array_keys($this->getFields())); $ids = array(); array_walk($data, function ($val, $key) use($data, $id_index, &$ids) { $ids[$key] = $val[$id_index]; }); if (!is_null($this->_fixed_data)) { $this->_fixed_data = array_reverse($this->_fixed_data); foreach ($this->_fixed_data as $item) { array_unshift($data, $item); } } if (!is_null($this->_renderer)) { array_walk($data, $this->_renderer); } if (!is_null($this->_renderer_obj)) { $this->_renderer_obj->applyTo($data, $objects); } if (!empty($this->_multiple)) { array_walk($data, function ($val, $key) use(&$data, $ids) { array_unshift($val, "<input type='checkbox' name='dataTables[actions][]' value='{$ids[$key]}' />"); $data[$key] = $val; }); } $output = array("sEcho" => intval($request->get('sEcho')), "iTotalRecords" => $iTotalRecords, "iTotalDisplayRecords" => $iTotalRecords, "aaData" => $data); return new JsonResponse($output); }