Bueno, si te fijas la relacion es la misma, quiero decir que es una. Y es
una relacion 1:1 en la que solo hay una foreign key que reside en una de las
dos tablas relacionadas.
Pintate el modelo con dbDesigner y lo veras claro.

El día 12/04/07, mcg_007 <[EMAIL PROTECTED]> escribió:
>
>
> Soy nuevo en esto de CakePHP y me metido directamente con el manual en
> ingles, pese a que mi nivel no da ni para pedir una cerveza y eso que
> soy borrachin :). Y me ha surgido una dudita, pese a que parezca muy
> larga. Pero os aseguro que es una tonteria, lo que pasa es que me
> gusta explicar las cosas bien.
>
> La duda en cuestion es sobre los ejemplos puestos en el manual sobre
> las relaciones de los modelos (Manual -> Models -> Section4:
> Associations).
>
> Para los dos ejemplos (hasOne y belongsTo) el campo foreignKey en
> ambos arrays de las descripciones de las relaciones es el mismo para
> las dos 'user_id'. Con lo que me imagino que al implementar la
> relacion uno a uno entre la entidad User y Profile de la base de
> datos, la clave externa se vuelca sobre la tabla de que representa a
> la entidad Profile referenciando a la entidad User. Y por tanto el
> campo foreignKey en las relaciones hasOne se refiere a la clave
> externa que aparece en el modelo externo referenciando al mismo modelo
> que estamos definiendo. Y el campo foreignKey en las relaciones
> belongsTo se refiere en la clave externa que aparece en el modelo que
> estamos defiendo referenciando al modelo externo. Se que me explico
> como un libro cerrado, por lo que mejor utilizo el ejemplo que aparece
> en el manual para explicarme.
>
> <?php
> class User extends AppModel
> {
>         var $name = 'User';
>         var $hasOne = array('Profile' =>
>                 array('className'    => 'Profile',
>                         'conditions'   => '',
>                         'order'        => '',
>                         'dependent'    =>  true,
>                         'foreignKey'   => 'user_id'
>                         /* Aqui foreign key indica la clave externa que
> aparece en el
> modelo externo (Profile) que referencia al modelo que estamos
> definiendo (User) */
>                         )
>                 );
> }
> ?>
>
> <?php
> class Profile extends AppModel
> {
>         var $name = 'Profile';
>         var $belongsTo = array('User' =>
>                 array('className'  => 'User',
>                         'conditions' => '',
>                         'order'      => '',
>                         'foreignKey' => 'user_id'
>                         /* Aqui foreignKey se refiere a la clave externa
> que aparece en el
> modelo que estamos definiendo referenciando al modelo externo */
>                         )
>                 );
> }
> ?>
>
> Se que me lio como la pata de un romano pero por modelo externo me
> refiero al modelo que asociamos al modelo que estamos definiendo.
>
> Con lo que me he liado es porque en la descripcion del atributo
> foreignKey para los dos tipos de relaciones aparece exactamente la
> misma frase: "foreignKey: the name of the foreign key that points to
> the associated model." que traduzco literalmente como "foreignKey: el
> nombre de la clave externa que apunta al modelo asociado". Pero si es
> como yo digo esto no me cuadra ya que en la relacion belongsTo si es
> asi ya que al definir el modelo Profile el foreignKey guarda el nombre
> de la clave externa que apunta al modelo asociado (User). Pero al
> definir el modelo User no es asiya que la el foreignKey usado en la
> relacion hasOne es user_id que apunta al mismo modelo que estamos
> definiendo y no al que estamos asociando.
>
> SOLUCIONES POSIBLES a mi ordenadas de mayor a menor probabilidad de
> exito
>
> SOLUCION 1: Error fatal de comprension y/o traduccion debido a mi bajo
> nivel de inglés o por que este hecho un zoquete y no me enterado.
> SOLUCION 2: Un error en la redaccion del manual y no debería haberse
> empleado la misma frase para definir el atributo foreignKey de las dos
> relaciones.
> SOLUCION 3: Un error en la redaccion del manual y al definir la
> relacion hasOne la foreignKey debería ser profile_id
>
> Muchas gracias a todo aquel que se haya tenido la paciencia para
> leerse toda la parrafada independientemente de que me resuelva la duda
> o no.
>
> Esto me pasa por intentar tragarme el manual entero antes de empezar a
> picar codigo. No sé si al final aprendere Cake pero de inglés un
> monton.
>
> Muchas gracias de nuevo.
>
>
> >
>


-- 
---------------------------------------------------
Where is the wisdom we have lost in knowledge?
Where is the knowledge we have lost in information?
T.S.Elliot

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