我正在建立一个作为社交网络的网站。
我有一个配置文件表和一个配置文件模型。
简介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))
问题是新条目(在本例中为“阅读”和“互联网”)在保存期间被忽略。没有错误,其他一切都保存得很好。
如果我打电话$this->Profile->Hobby->saveAll($this->request->data)
,那么它确实有效,但仅适用于爱好模型。当然,新的兴趣被忽略了,因为 save 调用没有通过它的模型。
数据数组的格式是否正确,或者这只是不可能在一次保存调用中实现?