sql >> Databasteknik >  >> RDS >> Mysql

Hämta data från två tabeller som är associerade med en utländsk nyckel i CakePhp

Först och främst måste din tabellstruktur vara enligt nedan.

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

Nu skulle modellen för varje bord vara.

Logga in

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

UserDetail

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

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

Och slutligen i styrenheten där du behöver hämta inloggningsdetaljer.

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

Du kommer att se userDetail-tabellposter i resulterande $login_detail .använd

pr($login_detail);
i kontrollenheten för att se den i aktion.

Skål. Fråga gärna.



  1. Hibernate, C3P0, Mysql -- Broken Pipe

  2. Transponera ett sql-resultat så att en kolumn går till flera kolumner

  3. Varför Cloud Database-övervakningsverktyg för SQL Server är värdefulla

  4. Skillnad mellan BINARY(16) och CHAR(32) vid lagring av MD5 i databasen