0

我有一个 hasMany through (连接模型),它不保存,但是在阅读时,它很自然地工作。

我会尽量提供尽可能多的细节,所以请多多包涵。请注意,我正在尝试保存与大量现有产品配对的新用户,并且我不想在此保存中添加新产品。

数据库表:users, products, subscribed_users

连接表的表结构:id, user_id, product_id, quantity, created, modified

用户.php

public $hasMany = array(
   'SubscribedUser'
);

产品.php

public $hasMany = array(
   'SubscribedUser'
);

订阅用户.php

class SubscribedUser extends AppModel {
   public $belongsTo = array(
       'User', 'Product'
   );
}

我试图从 UsersController.php 中保存的数据数组

Array (
    [User] => Array (
        [username] => asdf
    )
    [SubscribedUser] => Array (
        [0] => Array (
            [product_id] => 50f1ef25-6884-44cf-80e4-bd346f01a4c2
            [count] => 12
        )
        [1] => Array (
            [product_id] => 50f1f1d6-89b4-4ade-961f-c1a06f01a4c2
            [count] => 12
        )
    )
)

使用 $this->User->SubscribedUser->saveAll($data); 我已经正确保存了用户,但是我的 subscribed_users 表只有一行(从我上面的数据可以看出,应该有两行)并且它包含丢失的数据。没有product_id,count数为0。

我不确定我在这里缺少什么。想法?

4

2 回答 2

1

问题是我使用的是 $this->User->SubscribedUser->saveAll() 而不是 $this->User->saveAll()

我的问题现在用这个解决方案解决了。

于 2013-01-13T21:33:26.153 回答
1

除非是拼写错误,否则文件名Users.php是最明显的错误。

于 2013-01-13T20:37:31.827 回答