【发布时间】:2015-05-20 17:12:15
【问题描述】:
我有一个数据模型,我在其中注册用户->客户->联系信息->电子邮件/电话
每一个都是不同的表,具有各自的控制器和相关的所有内容。
当我尝试保存用户时,我使用以下代码:
$users = TableRegistry::get('Users');
$user = $users->newEntity($data, [
'associated' => ['Customers'],['Contactinfos'],['Phones'],['Emails']
]);
$users->save($user);
但它只救了用户和客户。
这是请求数据:
Array
(
[customers] => Array
(
[Customer] => Array
(
[name] => stackovertest
[last_name] => stackovertest
[ssn] => stackovertest
[address] => stackovertest
[gender] => male
[birth] => Array
(
[year] => 2015
[month] => 05
[day] => 20
)
)
)
[emails] => Array
(
[Email] => Array
(
[email] => stackovertest@test.com
)
)
[password] => stackovertest
[phones] => Array
(
[Phone] => Array
(
[number] => stackovertest
)
)
[role_id] => 0
[activation_code] => a026698222d0479252c2712d3d696fbcca8a766d
[tokentime] => 1432141608
[status] =>
[email] => stackovertest@test.com
[contactinfos] => Array
(
[contactinfo] => Array
(
)
)
)
基本上,contactinfo 表将有一个 id(在数据库中自动递增)和客户的 id。并且每个注册的电子邮件和电话都会有联系信息的ID。
这是 $user 数组数据:
App\Model\Entity\User Object
(
[new] => 1
[accessible] => Array
(
[email] => 1
[password] => 1
[status] => 1
[activation_code] => 1
[tokentime] => 1
[role_id] => 1
[role] => 1
[customers] => 1
)
[properties] => Array
(
[customers] => Array
(
[0] => App\Model\Entity\Customer Object
(
[new] => 1
[accessible] => Array
(
[name] => 1
[last_name] => 1
[ssn] => 1
[gender] => 1
[birth] => 1
[address] => 1
[user_id] => 1
[user] => 1
[aoffers] => 1
[hoffers] => 1
[poffers] => 1
)
[properties] => Array
(
[name] => stackovertest
[last_name] => stackovertest
[ssn] => stackovertest
[address] => stackovertest
[gender] => male
[birth] => Cake\I18n\Time Object
(
[time] => 2015-05-20T00:00:00+0000
[timezone] => UTC
[fixedNowTime] =>
)
)
[dirty] => Array
(
[name] => 1
[last_name] => 1
[ssn] => 1
[address] => 1
[gender] => 1
[birth] => 1
)
[original] => Array
(
)
[virtual] => Array
(
)
[errors] => Array
(
)
[repository] => Customers
)
)
[password] => stackovertest
[role_id] => 0
[activation_code] => a026698222d0479252c2712d3d696fbcca8a766d
[tokentime] => 1432141608
[status] =>
[email] => stackovertest@test.com
)
[dirty] => Array
(
[customers] => 1
[password] => 1
[role_id] => 1
[activation_code] => 1
[tokentime] => 1
[status] => 1
[email] => 1
)
[original] => Array
(
)
[virtual] => Array
(
)
[errors] => Array
(
)
[repository] => Users
)
你可以看到它不包含contactinfo对象所以它不会保存它。
我该如何解决这个问题?还是有其他方法可以保存多级关联数据?
【问题讨论】:
-
您的
associated密钥格式错误(实际上只有第一个型号列表在该密钥中),但这可能不是唯一的问题。
标签: php cakephp cakephp-3.0