>
> Hola:
>
> Estoy trabajando recientemente con cakePHP 1.2 y en el manual me
> encontre con bindModel y undbindModel estuve leyendo algo sobre
> ellos, pero no logro entender con claridad como usarlos
>
> Por favor si alguien me puede ayudar.
>
Hola Hernán, los métodos bindModel y unbindModel sirven para crear y
deshacer asociaciones on the fly. Imaginate que tenés un modelo Usuario que
tiene como asociaciones: Perfil, Blog, Grupo, etc.
Utilizando recursive, podrias traer los datos asociados del Usuario, y
también los datos asociados a sus asociaciones, por ejemplo, lost Posts
asociados al Blog.
Ejemplo:
Recursive = 1.
Te traeria algo asi
array(
[Usuario] =array(
[Perfil] => array(...),
[Blog] => array(
[Posts] array(
[0] => array(),
[1] => array(),
[...] => array(),
[n] => array()
)
),
[Grupo] => array(
[0] => array(),
[1] => array(),
[...] => array(),
[n] => array()
)))
Por lo que si vos querés saber solamente los posts, desde el punto de vista
de la perfomance, no tiene mucho sentido que te genere todos los queries y
te traiga los demás datos.
Por lo tanto vos podrías antes de hacer el query, deshacer las relaciones
que no necesitás.
Ejemplo:
En el controllador:
$this->Usuario->unbindModel(array('belongsTo' => ('Grupo') ));
O en el modelo:
$this->unbindModel(array('belongsTo' => ('Grupo') ));
Por lo que te traeria solo:
[Usuario] =array(
[Perfil] => array(...),
[Blog] => array(
[Posts] array(
[0] => array(),
[1] => array(),
[...] => array(),
[n] => array()
)
)))
Ahorrandote muchos queries y tambien memoria en caso de grandes cantidades
de datos.
Sin embargo, antes de molestarte en usar bindModel y unbindModel, probá el
sensacional Bindable behavior que creó Mariano Iglesias:
http://bakery.cakephp.org/articles/view/bindable-behavior-control-your-model-bindings
Saludos,
--
Matias Lespiau
http://www.gignus.com/
--~--~---------~--~----~------------~-------~--~----~
Has recibido este mensaje porque estás suscrito a Grupo "CakePHP-es" de Grupos
de Google.
Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a [email protected]
Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
Para obtener más opciones, visita este grupo en
http://groups.google.com/group/CakePHP-es?hl=es.
-~----------~----~----~----~------~----~------~--~---