3

我正在建立一个作为社交网络的网站。

我有一个配置文件表和一个配置文件模型。

简介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 调用没有通过它的模型。

数据数组的格式是否正确,或者这只是不可能在一次保存调用中实现?

4

1 回答 1

0

您可能想使用 Profile 而不是 Hobby 调用 saveAll。 

$this->Profile->saveAll($this->request->data)
于 2013-11-07T20:49:50.527 回答