Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Recuperando dados de duas tabelas que estão associadas a uma chave forign no CakePhp


Em primeiro lugar, a estrutura da sua tabela deve ser como abaixo.
logins Table.
  Id auto_increment
  username
  password
userDetails Table.
  Id auto_increment
  user_id
  name
  address
  etc...

Agora modelo para cada tabela seria.

Entrar
<?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' => ''
        )
}
?>

Detalhes do usuário
<?php
class UserDetail extends AppModel
{
    var $name = 'UserDetail';

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

E, finalmente, no controlador, onde você precisa buscar os detalhes de login.

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

Você verá os registros da tabela userDetail no $login_detail resultante .usar
pr($login_detail);
no controlador para vê-lo em ação.
Cheers.Sinta-se livre para perguntar.