首先,我知道有很多像我这样的问题,但我测试了很多解决方案,阅读文档但我的问题没有解决。
我正在使用Cakephp 2.x
我得到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;
在我的模型用户中,我得到:
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' => 'admin@admin.com',
'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)
)
感谢您的帮助。
答案 0 :(得分:1)
在型号PhoneNumber中使用
var name='PhoneNumber';
$belongsTo = 'User';
并在模型用户
中var name='User';
$hasMany='PhoneNumber';
答案 1 :(得分:0)
将其添加到model / User.php中 希望它能起作用
public $hasMany = array(
'Phonenumber' => array(
'className' => 'Phonenumber',
'foreignKey' => 'user_id',
'conditions' => array('Phonenumber.user_id' => 'User.id'),
'dependent' => true
)