0

保存する必要のあるモデルが2つあります。この例では、saveAll()にcakePHPは必要ありませんが、コンテンツを手動で保存したいと思います。

私の見解では、formHelperを「Model2.fieldname」として設定しており、投稿時にpr()を実行すると、[Model2]で作成されたフィールドを持つ連想配列があります。

コントローラ内の私のコード:

 if($this->request->is("post") {
      if($this->Model1->save($this->request->data) {
           if($this->Model1->Model2->save($this->request->data) {
                $this->Session->setFlash("Success");
           }
      }
 }

先に進み、model1のデータを保存しますが、model2では失敗します。作成および変更されたテーブルフィールドがあるため、テーブルに空のレコードが作成されますが、残りのフィールドは空白です。また、model2の検証にも失敗します(したがって、検証は行われません)。

Model1 hasOne Model2

私は以前にこれをしたことがないので、私は何か間違ったことをしていると確信しているので、誰かが事前に感謝を助けることができれば:)

4

1 に答える 1

0

あなたはcakephpのsaveAssociated()方法を使うことができます:

$this->Model1->saveAssociated($this->request->data);

saveAssociated()について読む

于 2012-05-17T10:47:02.760 に答える