私はUserモデルを持っています。CakePHPセーブモデルと関連モデル
それはこのようになりますフォームを含むビューを登録しています
echo $this->Form->create('User',array(NULL,NULL,'class' => 'signinform'));
echo $this->Form->input('first_name');
...
echo $this->Form->end('Create Account');
フォームを送信すると、それは次のように保存します。
$this->User->save($this->data)
これは動作します。私はこのようなフィールドを追加
var $hasMany = 'Address';
:
は、私は私のユーザーモデルに入れusers.id
への外部キーがあるフィールドuser_id
でaddresses
と呼ばれる私のデータベースにテーブルを追加しました登録フォームに:
echo $this->Form->input('Address.city');
私はこれがアドレステーブルに新しいエントリを作成し、それを新しいユーザに関連付けることを期待しました。それは新しいユーザーを作成しますが、アドレステーブルには何も配置しません。
私はsaveAll
にsave
から保存機能を変更してみました:
$this->User->saveAll($this->data)
今、何も保存されませんされます。
私は間違っていますか?
これは動作しますが、質問を頼む:ユーザーを保存すると成功しますが、アドレス/プロファイルの保存に失敗した場合 - 何をすべきか?フォームに戻すと、新しいユーザーを再度作成しようとします。 –
これが起こった場合、@ John、私はそれらを作成したユーザーを編集するための画面にリダイレクトし、エラーメッセージをフラッシュメッセージとして表示します。あるいは、両方の挿入が成功するか失敗するようにトランザクションを使用することができます:http://book.cakephp.org/view/1633/Transactions –
ありがとう! –