我在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
值上出现重复条目?感谢您的帮助。