Моя форма содержит объект модели, который содержит пять дочерних объектов, связанных с помощью hasMany.Когда я сохраняю форму, я замечаю, что все поля, независимо от того, являются ли они пустыми, сохраняются в базе данных.Можно ли установить условие в методе обратного вызова beforeSave (), чтобы предотвратить сохранение дочерних элементов, у которых нет значений?Я попытался сбросить ключ в массиве, содержащем пустые значения, но строка все еще добавляется в базу данных.
Вот код для моей модели 'Mtd'.Модель Mtd содержит много обработок Flowrate.В моей форме есть флажок «Это лечение на основе скорости потока».Таким образом, если пользователь нажимает на это, то пользователь может заполнить его в полях.Однако, если пользователь не заполняет его, я хочу предотвратить добавление новой строки только с помощью внешнего ключа таблицы 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;
}
}
?>