Reputation: 291
First of all, I know there is a lot of questions like mine, but I tested a lot of solutions, read the documentation but my problem is not solved.
I'm using Cakephp 2.x
I get 2 tables users and 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 my model User, I get :
var $hasMany = array(
'LoginToken' => array('className' => 'Usermgmt.LoginToken', 'limit' => 1),
'PhoneNumber' => array('className' => 'PhoneNumber'),
);
And In my model PhoneNumber I get :
var $belongsTo = 'Usermgmt.User';
When I try to select my users, there is no link between my models
$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(
..........
What am I doing wrong? I need to have my find like this
array("User"=>array(my data),
"PhoneNumber"=>array(my data)
)
Thanks for your help.
Upvotes: 0
Views: 71
Reputation: 414
Use in model PhoneNumber
var name='PhoneNumber';
$belongsTo = 'User';
and in model User
var name='User';
$hasMany='PhoneNumber';
Upvotes: 1
Reputation: 807
Add this into model/User.php Hope it will work
public $hasMany = array(
'Phonenumber' => array(
'className' => 'Phonenumber',
'foreignKey' => 'user_id',
'conditions' => array('Phonenumber.user_id' => 'User.id'),
'dependent' => true
)
Upvotes: 0