gpt4 book ai didi

复合唯一索引(非主索引)的验证规则

转载 作者:行者123 更新时间:2023-12-04 11:31:13 25 4
gpt4 key购买 nike

我确信我不是第一个在表中拥有复合唯一键并且想要验证它们的人。我不想发明自行车,所以我先在这里问。我有几个表,将“id”列作为主键,将另外两列作为唯一组合键。最好有一个验证规则来检查提交的条目是否唯一,如果不是,则显示验证错误。在 Cakephp 中,它可以通过自定义验证规则来完成。我很确定有人已经创建了这样的方法。

理想情况下,它应该是 app_model.php 中的一种方法,可供不同模型使用。

最佳答案

我正在使用该功能:

function checkUnique($data, $fields) {
if (!is_array($fields)) {
$fields = array($fields);
}
foreach($fields as $key) {
$tmp[$key] = $this->data[$this->name][$key];
}
if (isset($this->data[$this->name][$this->primaryKey]) && $this->data[$this->name][$this->primaryKey] > 0) {
$tmp[$this->primaryKey." !="] = $this->data[$this->name][$this->primaryKey];
}
//return false;
return $this->isUnique($tmp, false);
}

基本上用法是:
'field1' => array(
'checkUnique' => array(
'rule' => array('checkUnique', array('field1', 'field2')),
'message' => 'This field need to be non-empty and the row need to be unique'
),
),
'field2' => array(
'checkUnique' => array(
'rule' => array('checkUnique', array('field1', 'field2')),
'message' => 'This field need to be non-empty and the row need to be unique'
),
),

所以基本上这将在每个字段下显示警告,说它不是唯一的。

我经常使用它并且它工作正常。

关于复合唯一索引(非主索引)的验证规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3445483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com