2016-07-14 17 views
0

まず、私のような質問がたくさんあることを知っていますが、多くのソリューションをテストしましたが、ドキュメントを読んでいますが、私の問題は解決していません。CakePhp association hasMany

私は2つのテーブルのユーザーと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; 

を取得し、CakePHPの2.xの

を使用しています、私が取得:

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

そして、私のモデルのPhoneNumberで私は得る:

var $belongsTo = 'Usermgmt.User'; 

ユーザーを選択しようとすると、モデル間にリンクがありません

$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(

     .......... 

私は間違っていますか?私はこのような発見が必要です

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

ありがとうございました。

答えて

1

モデルのPhoneNumberで使用

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

とモデルのユーザーに

var name='User'; 
$hasMany='PhoneNumber'; 
に動作しますホープモデル/ User.phpにこれを追加します。
0

はそれが

public $hasMany = array(
    'Phonenumber' => array(
    'className' => 'Phonenumber', 
    'foreignKey' => 'user_id', 
    'conditions' => array('Phonenumber.user_id' => 'User.id'), 
    'dependent' => true 
) 
関連する問題