即使字段为空,也会保存相关的模型数据

时间:2013-03-06 11:25:13

标签: cakephp

我有一个带有费用模型和cashfloat模型的cakephp(2.2)应用程序。 Expense模型与cashFloat模型具有HasOne关系,而cashFloat模型属于Expense模型。

我有一个表单,用单个现金浮动字段表示“费用”。

我的问题是,当保存费用时,如果现金浮动字段为空,则仍会在cashFloats表中创建具有空值的记录。我怎么能避免这个?如果现金浮动字段不是空白,我只想创建现金浮动记录。

cashFloat模型上的beforesave()是否检查其是否为空最佳方式? (在过去的几个月里,我和蛋糕休息了一段时间,如果我错过了一些非常简单的话,我会道歉。)

模特:https://gist.github.com/anonymous/6ba48b84bddcc4dd23a3

1 个答案:

答案 0 :(得分: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
}