sql >> Base de Datos >  >> RDS >> Mysql

Recuperación de datos de dos tablas que están asociadas con una clave foránea en CakePhp

En primer lugar, la estructura de su tabla debe ser la siguiente.

logins Table.
  Id auto_increment
  username
  password
userDetails Table.
  Id auto_increment
  user_id
  name
  address
  etc...

Ahora sería el modelo para cada mesa.

Iniciar sesión

<?php
class Login extends AppModel
{
    var $name = 'User';

    var $hasMany = array
    (
        'UserDetail' => array
        (
            'className' => 'UserDetail',
            'foreignKey' => 'user_id',
            'dependent' => false,
            'conditions' => '',
            'fields' => '',
            'order' => '',
            'limit' => '',
            'offset' => '',
            'exclusive' => '',
            'finderQuery' => '',
            'counterQuery' => ''
        )
}
?>

Detalle de usuario

<?php
class UserDetail extends AppModel
{
    var $name = 'UserDetail';

    var $belongsTo = array
    (
        'User' => array
        (
            'className' => 'User',
            'foreignKey' => 'user_id',
            'dependent' => false,
            'conditions' => '',
            'fields' => '',
            'order' => '',
            'limit' => ''
        )
}
?>

Y finalmente en el controlador donde necesita obtener los detalles de inicio de sesión.

$login_detail = $this->Login->find('all');

Verá los registros de la tabla userDetail en el resultado $login_detail .usar

pr($login_detail);
en el controlador para verlo en acción.

Saludos. No dude en preguntar.