2011-05-25 9 views
1

私はbook.cakeに従います、私はパラメータに何かを送るべきか分かりません。cakephp beforesave質問

function beforeSave() { 
if (!empty($this->data['Article']['create_dt']) && !empty($this->data['Article']['modified_dt'])) { 
     $this->data['Article']['create_dt'] = $this->dateFormatBeforeSave($this->data['Article']['create_dt']); 
     $this->data['Article']['modified_dt'] = $this->dateFormatBeforeSave($this->data['Article']['modified_dt']); 
} 
return true; 
} 

例を検索しようとしましたが見つかりませんでした。 は私が
誰かがそれがデータを保存する前にケーキによって自動的に呼び出され

+0

それらを扱うでしょう申し訳ありませんが、あなたの質問は正確には何ですか? – deceze

答えて

6

beforeSaveを示唆するために大きなリソース 感謝を見つけるために私を助けることができる多くの例が必要。それで、あなたはそれぞれの保存の前に何をしたいのかを行うことができます。通常これは、保存しようとしているデータである$this->dataを変更することを意味します。

このメソッドには、1つのパラメータ、つまりarray('validate' => true/false, ('fieldList' => array(...))の配列が渡されます。これは、あなたがsave()に供給できる2つの余分なパラメータに対応:

$this->Model->save($this->data, false, array('foo', 'bar')); 

この場合、配列は
array('validate' => false, 'fieldList' => array('foo', 'bar'))ようになります。

あなたは、引数を指定することにより、この配列を受け入れることができます:

public function beforeSave($options) { ... } 

$optionsは、上述のようになります。この情報は、任意の方法で使用できます。

return truebeforeSaveから削除すると、保存操作はすべてキャンセルされます。

それだけです。

+0

は は、あなたがそのきちんと私 – user759198

+1

http://book.cakephp.org/view/1015/created-and-modified – deceze

+0

+1、素敵な明確な説明を導くことができ、私はすべての私が作成時または変更されたデータを記録する必要が
ありがとう私はMSSQLで日付を保存する問題を解決することができました – Cruachan

0

私は、このモデルでデータが保存されるたびにbeforeSave()が使用されるため注意してください。

これが使用されていることを忘れた場合、予期しない結果が発生します。 は私に数回起こる...;)テーブルケーキに日時タイプで作成、変更、魔法のフィールドを使用して

1

試みは自動的に