2016-07-14 23 views
0

Zunächst einmal weiß ich, dass es viele Fragen wie meine gibt, aber ich habe viele Lösungen getestet, lese die Dokumentation, aber mein Problem ist nicht gelöst.CakePhp association hasMany

Ich benutze CakePHP 2.x

ich 2 Tabellen-Benutzer und phone_numbers

CREATE TABLE `users` (
    `id` varchar(32) NOT NULL, 
    `user_group_id` int(11) unsigned DEFAULT NULL, 
    `username` varchar(100) DEFAULT NULL, 
    `password` varchar(255) DEFAULT NULL, 
    `salt` text, 
    `email` varchar(100) DEFAULT NULL, 
    `first_name` varchar(100) DEFAULT NULL, 
    `last_name` varchar(100) DEFAULT NULL, 
    `created` datetime DEFAULT NULL, 
    `modified` datetime DEFAULT NULL, 
    PRIMARY KEY (`id`), 
    KEY `user` (`username`), 
    KEY `mail` (`email`), 
    KEY `users_FKIndex1` (`user_group_id`) 
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

    CREATE TABLE `phonenumbers` (
    `id` varchar(32) NOT NULL, 
    `user_id` varchar(32) NOT NULL, 
    `phoneNumber` varchar(64) NOT NULL, 
    `modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    PRIMARY KEY (`id`), 
    CONSTRAINT `fk_phonenumbers_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) 
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

In meinem Modell Benutzer, die ich erhalten:

 var $hasMany = array(
    'LoginToken' => array('className' => 'Usermgmt.LoginToken', 'limit' => 1), 
    'PhoneNumber' => array('className' => 'PhoneNumber'), 
    ); 

und in meinem Modell Phone Ich bekomme:

var $belongsTo = 'Usermgmt.User'; 

Wenn ich versuche, meine Benutzer zu wählen, gibt es keine Verbindung zwischen meinen Modellen

$this->User->find('all'); 
    array(
     (int) 0 => array(
      'User' => array(
       'password' => '*****', 
       'id' => '1', 
       'user_group_id' => '1', 
       'username' => 'admin', 
       'salt' => '', 
       'email' => '[email protected]', 
       'first_name' => 'Admin', 
       'last_name' => '', 
       'created' => '2016-03-16 13:49:49', 
       'Modified' => '2016-03-21 13:04:26', 
      ) 
     ), 
       (int) 1 => array(

     .......... 

Was mache ich falsch? Ich brauche meinen Fund so zu haben

 array("User"=>array(my data), 
      "PhoneNumber"=>array(my data) 
      ) 

Danke für Ihre Hilfe.

Antwort

1

Einsatz im Modell Phone

var name='PhoneNumber'; 
$belongsTo = 'User'; 

und in Modell Benutzer

var name='User'; 
$hasMany='PhoneNumber'; 
arbeiten
0

diese Fügen Sie in Modell/User.php Hoffe, dass es

public $hasMany = array(
    'Phonenumber' => array(
    'className' => 'Phonenumber', 
    'foreignKey' => 'user_id', 
    'conditions' => array('Phonenumber.user_id' => 'User.id'), 
    'dependent' => true 
)