Пример #1
0
 public function serversideAction()
 {
     $request = $this->getRequest();
     if ($request->isPost()) {
         //EL MAPEO DE NUESTRA TABALA
         $table_map = array(0 => 'servicio_nombre', 1 => 'servicio_tipo', 2 => 'servicio_medio');
         $post_data = $request->getPost();
         //NUESTRA QUERY
         $query = new \ServicioQuery();
         //ORDER
         if (isset($post_data['order'])) {
             $order = $table_map[$post_data['order'][0]['column']];
             $dir = $post_data['order'][0]['dir'];
             $query->orderBy($order, $dir);
         } else {
             $query->orderByIdservicio(\Criteria::DESC);
         }
         if (!empty($post_data['search']['value'])) {
             $search = $post_data['search']['value'];
             $c = new \Criteria();
             $c1 = $c->getNewCriterion('servicio.servicio_tipo', '%' . $search . '%', \Criteria::LIKE);
             $c2 = $c->getNewCriterion('servicio.servicio_medio', '%' . $search . '%', \Criteria::LIKE);
             $c3 = $c->getNewCriterion('servicio.servicio_nombre', '%' . $search . '%', \Criteria::LIKE);
             $c4 = $c->getNewCriterion('servicio.servicio_descripcion', '%' . $search . '%', \Criteria::LIKE);
             $c1->addOr($c2)->addOr($c3)->addOr($c4);
             $query->addAnd($c1);
         }
         //EL TOTAL DE LA BUSQUEDA
         $recordsFiltered = $query->count();
         //LIMIT
         $query->setOffset((int) $post_data['start']);
         $query->setLimit((int) $post_data['length']);
         //DAMOS EL FORMATO CORRECTO
         $data = array();
         $value = new \Servicio();
         foreach ($query->find() as $value) {
             $tmp['DT_RowId'] = $value->getIdservicio();
             $tmp['servicio_nombre'] = $value->getServicioNombre();
             $tmp['servicio_tipo'] = $value->getServicioTipo();
             $tmp['servicio_medio'] = $value->getServicioMedio();
             $tmp['servicio_descripcion'] = $value->getServicioDescripcion();
             $tmp['servicio_options'] = '<a data-toggle="tooltip" data-placement="left" title="Editar" href="/catalogo/servicios/editar/' . $value->getIdservicio() . '"><i class="fa fa-pencil"></i></a>';
             $data[] = $tmp;
         }
         //El arreglo que regresamos
         $json_data = array("draw" => (int) $post_data['draw'], "recordsFiltered" => $recordsFiltered, "data" => $data, "page" => $post_data['url_params']['page']);
         return $this->getResponse()->setContent(json_encode($json_data));
     }
 }