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);
 }