【发布时间】:2017-06-08 14:47:27
【问题描述】:
我有一个关于保存一个新实体的问题,该关联是一个 belongsToMany 关系。只是一个简单的介绍。我有一个设置表和一个 setting_values 表。用户通过名为 users_settings 的 joinTable 连接到设置。综上所述:
设置: 编号 |名字
setting_values: 编号 |设置ID |姓名 |价值 |
users_settings: 编号 |用户 ID |设置ID | setting_value_id
现在在添加用户之前,我想用所有设置和每个设置的第一个 setting_value 修补用户的实体。这样 users_settings 现在将所有设置都连接到具有第一个值的用户。但我无法让补丁或 newEntity 正常工作。所有模型都是烘焙的,所以这应该没问题。这是我的代码
$settings = $this->Settings->find('all', [
'contain' => [
'SettingValues'
]
]);
$settingsData = [];
foreach ($settings as $setting) {
$settingsData[] = [
'setting_id' => $setting->id,
'setting_value_id' => $setting->setting_values[0]->id,
];
}
$data = [
'users_settings' => $settingsData
];
$user = $this->Users->patchEntity($user, $data, [
'associated' => [
'Settings.UsersSettings'
]
]);
这是$user 实体中的结果。如您所见,没有任何内容被正确编组:
users_settings => [
(int) 0 => [
setting_id => (int) 1,
setting_value_id => (int) 1
],
(int) 1 => [
setting_id => (int) 2,
setting_value_id => (int) 5
]
]
有人可以给我一个建议吗?谢谢
【问题讨论】:
标签: php cakephp orm associations cakephp-3.0