0

経費モデルとキャッシュフロートモデルを持つcakephp(2.2)アプリがあります。ExpenseモデルはcashFloatモデルとHasOneの関係にあり、cashFloatモデルはExpenseモデルに属しています。

単一のキャッシュフロートフィールドで「経費」を表すフォームがあります。

私の問題は、経費が節約されたときに、キャッシュフロートフィールドが空の場合でも、null値のレコードがcashFloatsテーブルに作成されることです。どうすればこれを回避できますか?キャッシュフロートフィールドが空白でない場合にのみ、キャッシュフロートレコードを作成したいと思います。

空であるかどうかをチェックするcashFloatモデルのbeforesave()は、最善の方法ですか?(私は過去数ヶ月間ケーキから休憩していたので、非常に単純なものが欠けている場合はお詫びします)。

モデル:https ://gist.github.com/anonymous/6ba48b84bddcc4dd23a3

4

1 に答える 1

0

beforeValidate()コールバックを介してcashFloat金額のデータ配列キーを設定解除することにより、これを解決することができました。これが誰かを助けることを願っています。

public function beforeValidate(){
    if(empty($this->data['CashFloat']['amount'])){
        unset($this->data['CashFloat']['amount']);
    }
    return true; //this is required, otherwise validation will always fail
}
于 2013-03-06T12:52:34.917 に答える