Como usar los Modelos en KumbiaPHP

Este post nace luego de una conversación en el IRC de KumbiaPHP dado por una duda de unos de nuestro usuarios ya que deseaba realizar una consulta SQL, lo cierto del caso es que dicha consulta «pensaba» desde el controller siento esto totalmente incorrecto, ya que no respeta el MVC y en este sentido se ha creado en la Wiki de KumbiaPHP Framework una explicación del correcto uso de los modelos dentro de KumbiaPHP, de manera tal que se aproveche al máximo las bondades propias del Framework.

Dejo la conversación:

<Deyabu> alguien tiene un minuto? tengo una dudilla en el 0.5 :P
<CaChi> di
<Deyabu> tengo ke hace runa consulta a dos tablas y mostrar el resultado..
<Deyabu> lo hago con un find_by_sql?
<CaChi> ok
<CaChi> find_by_all_sql
<CaChi> voten si aun falta alguno
<Deyabu> seria.. $this->consulta1 = $this->ejemplo->find_by_all_sql
<CaChi> seria mejor que lo hicieras en el modelo
<joanhey> depende
<CaChi> osea haz un método en el modelo
<joanhey> si eso sip
<CaChi> y los llamas en tu controller queda mas limpio
<joanhey> usad siempre el modelo
<Deyabu> peor, tengo 2 modelos, 1 por cada una de esas tablas :P
* lucasan (Lucas_Torr@CJ8QBM.BwIdCk.virtual) has left #kumbia
<CaChi> y?
<Deyabu> en cual de los dos modelos lo hago? :P
<CaChi> el que mas te guste
<CaChi> es un SQL
<CaChi> eso no importa
<Deyabu> ok ok
<CaChi> el modelo en este caso es solo un medio de transporte para ejecutar el sql
<CaChi> $this->consulta1 = $this->ejemplo->miMetodo()
<joanhey> segun la consulta
<joanhey> es mejor en uno o en otro
<joanhey> pero por lo demas da lo mismo
<Deyabu> aja…
<CaChi> pienso que iria bien en el modelo que tiene la FK del otro
<CaChi> el modelo padre por asi decirlo
<joanhey> es decir
<Deyabu> y en el modelo, como deberia estar ?
<joanhey> Articulos->conTags
<joanhey> Tags->articulos
<joanhey> eso depende de tu consulta
<joanhey> y como lo usaras
<joanhey> ahora te paso uno
* darghex1 (darghex@CZGfAu.DrI8H6.virtual) has joined #kumbia
<Deyabu> ok … grax
<joanhey> http://kumbia.pastebin.com/m259db340
<joanhey> alli tienes el buscar
<joanhey> y de paso lo puedes usar en otros controller
<joanhey> por ejemplo
<Deyabu> ahi lo estoy viendo..
<joanhey> http://www.copasapobla.com/club/rcd_mallorca/
<joanhey> en el controller club
<joanhey> lo uso para enseñar las noticias que hablan de ese club
<joanhey> al estar en el modelo es facil
<joanhey> en el controller club
<joanhey> hago 2 llamadas
<joanhey> una para que me de los datos del club
<joanhey> Clubs->find(id)
<joanhey> y despues
<joanhey> Articulos->buscar( $club->nombre=
<joanhey> )
<Deyabu> aja…
<joanhey> y no te repites
<joanhey> al estar en el modelo todo es mas facil
<joanhey> y mas reutilizable
<Deyabu> pero esta en el modelo del Club….
<joanhey> la logica debe estar en el modelo siempre
<joanhey> no
<joanhey> mira el modelo que te pase
<joanhey> es el de Articulos
<Deyabu> ahh ahhh ya entendo :P
<joanhey> el modelo
<joanhey> esta para que crees tus propios metodos
<joanhey> sobre esa tabla
<joanhey> y tu despues lo llamas de donde quieras
<Deyabu> y lo llamas $this->articulos=$buscar()
<Deyabu> ?:P
<joanhey> la logica debe estar en el modelo
<joanhey> no
<joanhey> no se llama asi
<CaChi> :S
<joanhey> $this->Articulos->buscar($busqueda);
<Deyabu> :S perdi mis apuntes :P
<Deyabu> ok.. ahi guado eso :P
<joanhey> el ActiveRecord de KumbiaPHP
<joanhey> tiene creados por defecto ya
<joanhey> para tener la vida mas facil
<joanhey> tienes el find, find_all, update, …..
<joanhey> pero lo suyo es que tu crees los tuyos propios
<joanhey> con mas logica
<joanhey> que es diferente para cada app
<joanhey> por ejemplo
<joanhey> ultimos
<joanhey> me muestra los ultimos articulos a partir de hoy
<joanhey> en orden descendente de fecha
<Deyabu> sip…
<joanhey> Articulos->ultimos()
<joanhey> y listo
<joanhey> y lo puedo usar donde quiera


7 thoughts on “Como usar los Modelos en KumbiaPHP”

  1. Pingback: Bitacoras.com
  2. Me parece muy bueno el ejemplo que habeis puesto. Realmente muestra como usar correctamente el framewrok y el concepto de modelos basado en Active Record.

  3. Estas conversaciones que se realizan en el IRC de KumbiaPHP no tienen desperdicio.
    Espero mas ejemplos, saludos.

  4. Ja! primera vez que lo leo aqui xDD tengo el txt de esa conversacion aun :D
    Gracias por todo lo ke me ayudan :D
    Saludos..

    Deyabu

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

© Kumbia Team