【发布时间】:2016-03-16 09:35:45
【问题描述】:
我的 BlockedTable.php 中有以下规则
public function buildRules(RulesChecker $rules)
{
$rules->add($rules->isUnique(['date', 'time']),
['message' => 'unique error']);
return $rules;
}
到目前为止,这一切都很好 - 如果我尝试使用已经存在的日期和时间保存新记录,它会阻止我保存。
但是,如果我的时间是NULL,比如下面的条目;
╔════╦══════════════╦═══════╗
║ ID ║ Date ║ Time ║
╠════╬══════════════╬═══════╣
║ 1 ║ 22/08/1985 ║ NULL ║
╚════╩══════════════╩═══════╝
该规则仍然允许我保存具有相同数据的新条目。因此,如果我尝试保存 $date = 22/08/1985 和 $time = NULL 它保存得很好,并且我的数据库中有重复记录。由于上述规则,我预计它会失败吗?
为什么会这样?以及如何防止 NULL 值上的重复条目?
提前感谢您的帮助。
【问题讨论】:
-
如果 CakePHP 5 适合您,那么它现在默认启用。 https://github.com/cakephp/cakephp/issues/15734
标签: php validation cakephp cakephp-3.0