No es para nada redundante, y tiene un propósito. Como todo lo que se agrega
al core de CakePHP, ha sido estudiado una y otra vez y concluido que es lo
más efectivo y prolijo. 

Por ejemplo, las mejores prácticas de CakePHP dicen que lo ideal no es usar
$uses en tu controlador, sino que desde tu controlador, y utilizando el
modelo principal, poder llegar a todos los modelos que necesites en el
controlador. Si no podés llegar a un modelo a través de sus relaciones,
entonces seguramente esa operación no pertenezca a ese controlador.

Por ejemplo, si tenés un controlador UsersController, y como decís un modelo
User -> hasOne -> Profile y tambien User -> hasMany -> Subject -> belongsTo
-> School entonces, si no agregaste $uses para nada en tu controlador
UsersController, podés hacer cosas como:

$this->User->Profile->findAll();

O también:

$this->User->Subject->School->findAll();

Del mismo modo, debido a que también definiste Profile -> belongsTo -> User,
en tu ProfilesController podés hacer:

$this->Profile->User->findAll();

Si no tuvieramos la relación definida, esto no sería posible, salvo que
hagamos un requestAction() a alguna acción dentro del controlador
UsersController y obtengamos así el resultado de la consulta.

En cuanto a limitar el numero de modelos que son devueltos luego de hacer un
find(), mi función expects() hace eso con bastante facilidad:

http://bakery.cakephp.org/articles/view/185

-MI

---------------------------------------------------------------------------

Remember, smart coders answer ten questions for every question they ask. 
So be smart, be cool, and share your knowledge. 

BAKE ON!

blog: http://www.MarianoIglesias.com.ar


-----Mensaje original-----
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En
nombre de Juan Pablo Araya
Enviado el: Jueves, 12 de Abril de 2007 12:39 a.m.
Para: CakePHP-es
Asunto: Re: Duda sobre foreignKey en relaciones hasOne y belongsTo

Si solamente usas los datos desde User, no sería necesario declarar el
belongsTo en Profile. De todas maneras lo he hecho siempre con ambas
declaraciones aunque no necesite usar explícitamente Profile.

Lo que me tiene un poco complicado es sobre la cantidad de
declaraciones SQL que haría cake en estos casos. Por ejemplo puedo
tener:

Usuario-hasMany-Asignatura-belgonsTo-Ramo-belongsTo-Instituto o algo
asi (incluso con más relaciones hasMany en la línea de relación)....
si hago Usuario->findById(x), me entregaría un objeto con todas las
relaciones. Hay alguna forma de soslayar toda la estructura que quizá
no la necesite más que algunas veces?


--~--~---------~--~----~------------~-------~--~----~
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.

-~----------~----~----~----~------~----~------~--~---

Responder a