【发布时间】:2012-03-12 17:32:10
【问题描述】:
我的表单包含一个模型对象,其中包含五个使用 hasMany 关联的子对象。当我保存表单时,我注意到所有字段,无论它们是否为空,都保存到数据库中。是否可以在 beforeSave() 回调方法中设置条件以防止没有值的子项被保存?我试图取消设置包含空值的数组中的键,但该行仍在添加到数据库中。
这是我的“Mtd”模型的代码。 Mtd 模型包含许多 Flowratereatments。在我的表格上,我有一个复选框,上面写着“这是基于流量的治疗”。因此,如果用户单击它,则用户可以将其填写在字段中。但是,如果用户不填写,我想防止仅使用 Mtd 表的外键添加新行。
<?php
class Mtd extends AppModel {
public $name = 'Mtd';
public $hasOne = array('Treatmentdesign', 'Volumetreatment');
public $hasMany = 'Flowratetreatment';
function beforeSave() {
if($this->data['Mtd']['is_settling'] != 1){
unset($this->data['Flowratetreatment'][0]);
}
return true;
}
}
?>
【问题讨论】: