Creando servicios con kumbiaPHP

En un post anterior les presente un plugins para jQuery el cual nos permite la manipulación del componente select de HTML, pues bien ahora veremos como crear servicios con kumbiaPHP para usar la característica de cargar un select mediante este plugin.

El servicio que vamos a crear nos deberá devolver un objeto en formato JSON (Debemos especificar que el contenido es de este tipo, de lo contrario solo lo tomara como texto).

Para hacernos la vida mas sencilla e identificar que controlador hace la función de servicio, vamos a crear un nuevo controlador base de la cual extenderán todos nuestros controladores de servicios.

En este caso el nuevo controlador se llama ServicesController y se encuentra ubicado en app/libs/

ServicesController

La razón por la que debemos crear un nuevo es por las siguientes razones:

  • Teniendo este controlador base ya no será necesario especificar en cada controlador donde queramos hacer un servicio, indicar que la respuesta a devolver es de tipo JSON.
  • Separar nuestros servicios de nuestros controladores para una mejor organización
  • En cada creación de servicio indicar que no debe seleccionar ninguna vista y ningún template.

Nuestro controlador

Como podemos observar ahora nuetro controlador extiende de ServiceController. por lo que solo nos enfocamos en devolver la respuesta en formato JSON, para esto podemo hacer uso de la función propia del Active_Record que es –>to_json(), la cual usa la función json_encode nativa de php (versión 5,3 en adelante).

Nuestro modelo

En nuestro modelo concentramos las consulta, es importante crear alias value y text ya que serán estos serán usados por el plugin HTML SELECT (sus nombres son muy descriptivos) para llenar el select.

Y listo ahora solo nos queda llamar a estas funciones desde nuestra vista.

y nos llenara el select con el id “id_select”

Y listo con esto le sacaremos mucho mas partido a KumbiaPHP

https://github.com/govaniso/Html-select

http://soyprogramador.liz.mx/plugins-para-manipular-el-componente-html-select/

Artículo origen

Leave a Reply

Your email address will not be published. Required fields are marked *