私は比較的新しいCakePHPです。関連するデータを保存しようとしています。CakePHP saveAll関連するデータを更新または挿入します
今はメッセージデータベースとユーザーデータベースがあり、メッセージを送信するユーザーをユーザーテーブルに保存したいと思いますが、複数のメッセージを送信すると、このユーザーは既にそこにいる可能性があります。
今私は次のように更新しています:
$this->Message->saveAll(array(
'Message' => array(
'contents' => $contents,
),
'User' => array(
'name' => $name,
'email' => $email,
)
);
CakePHPはそれが新しいものであるかのようにユーザーを挿入しようとしますが、メールが既に存在している、ユニークでなければなりませんので、しかし、これはエラーをスローするようにMySQLを引き起こし。
これを行う方法はありますか?または、ユーザーが既に自分自身に存在するかどうかを確認する必要がありますか?
TIA。
ユーザーにはIDがありますが、固有の値ではありません。電子メールアドレスは固有の部分です。私はメッセージを挿入しようとしているときにユーザーのIDを知らない。 最初に電子メールで見つけてそのIDを使ってユーザーを更新するか、IDを残してケーキを新しいユーザーにすることをお勧めしますか? – Ezra
これは正しいことです。新しいユーザーを作成しないようにするには、最初にユーザーのIDを見つける必要があります。 – ianmjones