1

複数のモデルの関連付けでデータを保存しようとしていますが、まったく保存されていません。私はすべて正しく設定しました。つまり、フォームからのデータは問題なく(デバッグはすべてを表示します)、findもデータをフェッチしますが、問題がどこにあるのか理解できませんでした。私のコードは次のとおりです。

コントローラ:

if($url == "expense_reports") { $this->set('tab_content','Invoice - Expense Reports'); $this->render('/job/invoice2'); 
        if($this->request->is('post'))
    {//debug($this->data);
 $this->Event->Invoice->Expense->save($this->data);                         }
}

モデル(協会):

イベント

public $belongsTo = array(
        'EventType' => array(
            'className' => 'AgencyCalendar.EventType',
            'foreignKey' => 'event_type_id'
        )
    );

    public $hasMany = array(
        'Invoice' => array(
            'className' => 'AgencyCalendar.Invoice',
            'foreignKey' => 'event_id',
            'dependent' => false
        )
    );

請求書

public $belongsTo = array(
        'Event' => array(
            'className' => 'AgencyCalendar.Event',
            'foreignKey' => 'event_id'
        )
    );

public $hasMany = array(
        'Expense' => array(
            'className' => 'AgencyCalendar.Expense',
            'foreignKey' => 'invoice_id',
            'dependent' => false
        )
    );

費用

public $belongsTo = array(
        'Invoice' => array(
            'className' => 'AgencyCalendar.Invoice',
            'foreignKey' => 'invoice_id'
        )
    );

また、実際に何が起こっているのかを調べるために、この特定のアクションのSQLダンプをビューに取得していません。また、経費ビューから生成される複数の行を保存するにはどうすればよいですか。私の経費ビューはカスタムURLなので、SQLダンプが表示されない原因になるのでしょうか、それともデータがまったく保存されない原因になるのでしょうか。私が間違っていることを教えてください。

4

1 に答える 1

0

あなたが探しているのはsaveAllだと思います。(http://book.cakephp.org/2.0/en/models/saving-your-data.html#model-saveall-array-data-null-array-options-array)

$this->Event->saveAll($this->data); 

これは、次の条件を満たしていれば機能します: - モデルの関係が正しく設定されている - $this->data に正しい配列属性がある

于 2013-01-15T19:48:14.553 に答える