【发布时间】:2015-11-30 04:14:38
【问题描述】:
我使用的是 CakePHP2.7.5,我的模型的 save 函数失败了,因为它试图验证 $fieldList 参数中未指定的字段。
根据Cookbook,save方法将$fieldList作为第三个参数,将保存的字段限制为$fieldList中列出的字段。
Model::save(array $data = null, boolean $validate = true, array $fieldList = array())
我在模型中这样调用save:
$this->save($data, true, ['name', 'place']);
$data 是这样的:
[ 'ModelName' => [ 'id' => $id, 'name' => 'abcdef', 'place' => 'ghijklmn' ] ]
但它失败了,因为$data 中未显示的必填字段发生验证错误。它应该以这种方式工作吗?
我必须在$data 中为必填字段添加一些虚拟数据吗?
【问题讨论】:
-
我认为这是正确的行为,因为如果我为我的模型创建一些验证规则,我想依赖它,以便存储到数据库中的数据始终有效。是否要将与验证规则不匹配的数据集存储到数据库中?
-
对不起,如果不清楚,但我的意思是已经有一条有效的记录,我只想更新上面示例中的“名称”和“地点”字段。我没有触及任何其他领域,所以我不需要对这些领域进行验证。我期待指定 $fieldList 将适用于这种情况。
标签: php validation cakephp cakephp-2.x