0

保存されていないhasManythrough(結合モデル)がありますが、読み取ると自然に機能します。

可能な限り詳細を提供するように努めますので、ご容赦ください。大量の既存の製品と組み合わせて新しいユーザーを保存しようとしていることに注意してください。この保存に新しい製品を追加したくありません。

データベーステーブル:users, products, subscribed_users

結合テーブルのテーブル構造:id, user_id, product_id, quantity, created, modified

User.php

public $hasMany = array(
   'SubscribedUser'
);

Product.php

public $hasMany = array(
   'SubscribedUser'
);

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-> SubscriptionUser-> saveAll($ data);を使用します。ユーザーを適切に保存しましたが、subscribed_usersテーブルには1行しかなく(上記のデータからわかるように、2行あるはずです)、欠落しているデータが含まれています。product_idはなく、カウント数は0です。

ここで何が欠けているのかわかりません。考え?

4

2 に答える 2

1

タイプミスでない限り、ファイル名Users.phpが最も明白なエラーです。

于 2013-01-13T20:37:31.827 に答える
1

問題は、$ this-> User-> saveAll()ではなく、$ this-> User-> SubscriptionUser-> saveAll()を使用していたことでした。

私の問題はこの解決策で解決されました。

于 2013-01-13T21:33:26.153 に答える