我正在建立一个充当社交网络的网站。
我有个人资料表和个人资料模型。
个人资料 HABTM 兴趣
个人资料 HABTM 爱好 等...
爱好 和 兴趣 表格中有一些预先定义的记录,用户可以选择在他们的个人资料上显示。但如果他们没有预定义,他们也可以选择增加自己的爱好和兴趣。
当用户选择添加尚不存在的爱好或兴趣时,会出现问题。将预定义记录保存到连接表不是问题。但在同一次保存调用期间,我似乎无法在 兴趣 和 兴趣爱好 表中创建新条目。
下面是我试图保存的数据数组的片段(我也尝试了其他组合,但这个似乎最符合逻辑):
array(
'Interests' => array(
'Interests' => array(
(int) 0 => '1',
(int) 1 => '2',
(int) 2 => '5'
),
'name' => 'Internet' //this is the user-created entry
),
'Hobbies' => array(
'Hobbies' => array(
(int) 0 => '1',
(int) 1 => '2',
(int) 2 => '5',
(int) 3 => '7',
(int) 4 => '8'
),
'name' => 'Reading' //this is also a user-created entry
)
)
保存功能:$this->Profile->saveAll($this->request->data, array('deep' => true))
问题是在保存期间新条目(在本例中为“Reading”和“Internet”)被忽略。没有错误,其他一切都被保存得很好。
如果我致电$this->Profile->Hobby->saveAll($this->request->data)
,那么它确实有效,但仅适用于 Hobby 模式。当然,新兴趣会被忽略,因为保存调用不会通过其模型。
数据阵列格式不正确,还是在一次保存调用中无法实现?
答案 0 :(得分:0)
您可能希望使用Profile调用saveAll,而不是Hobby。
$this->Profile->saveAll($this->request->data)