由于 CakePHP 更新到 2.3.5,我无法保存数据。我不想保存不包含价格的数据。
我的模型中的 beforeSave 方法如下所示:
public function beforeSave($options = array()){
if(empty($this->data['MyModel']['price'])){
unset($this->data['MyModel']);
}
return true;
}
自从我更新以来,我在 /lib/Model/Model.php (l. 1751) 中找到了这个
if ($success && $count === 0) {
$success = false;
}
如果我评论这 3 行,我的问题就解决了。您知道我的 beforeSave 中不阻止我保存的方法吗?
如果我使用数据验证,我的所有数据都不会用我的 saveAll 保存。
示例模型“选项”验证器:
public $validate = array(
'prix' => array(
'rule' => 'notEmpty'
)
);
要保存的示例数据:
array(
'Commande' => array(
'nature_commande' => '0',
'base_id' => '1',
'nom' => 'Test',
'chef_id' => '531',
),
'Option' => array(
(int) 0 => array(
'prix' => '5456'
),
(int) 1 => array(
'prix' => '45645'
),
(int) 3 => array(
'prix' => ''
)
)
saveAll 在我的控制器“Commande”中(返回 false):
debug($this->Commande->saveAll($this->request->data, array('validate' => 'first')));
我希望将我的数据保存在模型“选项”=> 3 的最后一行中。我可以在控制器中使用 foreach 删除空白行,但我可以做得更好吗?