gpt4 book ai didi

cakephp - Cake php 验证规则 'isUnique' 在编辑时出现错误

转载 作者:行者123 更新时间:2023-12-02 20:26:13 28 4
gpt4 key购买 nike

蛋糕 php 验证“isUnique”在编辑时出现错误

 var $validate = array(
'name' => array(
'notempty' => array(
'rule' => array('notempty'),
),
'isUnique' => array (

'rule' => 'isUnique',

'message' => 'This person name already exists.'
)

)
);

这里,当添加具有现有名称的新人员时,会出现错误此人名已存在,这很好。但在编辑现有人员时也会给出相同的 isUn​​ique 错误。

我该如何解决?

最佳答案

尝试:

'isUnique' => array (

'rule' => 'isUnique',

'message' => 'This person name already exists.',

'on' => 'create',
)

摘自书中:

If a rule has defined ‘on’ => ‘create’, the rule will only be enforced during the creation of a new record. Likewise, if it is defined as ‘on’ => ‘update’, it will only be enforced during the updating of a record.

但是,如果允许他们更改名称,并且您仍然需要其他记录的唯一性,则可能需要自定义唯一验证,该验证将检查它是否与我正在编辑的 ID 的记录相同否则就会失败。

编辑:不要使用以下内容 - cakes 内置 isUnique 验证已经处理它

注意 - 未经测试的代码(已经晚了,我会在早上测试),但它会给你想法

将以下内容添加到模型中,并将 'rule' => 'isUnique' 更改为 'rule' => 'isUniqueName' 并删除 'on' => 'create'

public function isUniqueName($fields) {
$conditions = array($this->alias . '.name' => $this->data[$this->alias]['name']);
if (isset($this->data[$this->alias][$this->primaryKey])) {
$conditions[$this->alias . '.' . $this->primaryKey . ' <>'] = $this->data[$this->alias][$this->primaryKey];
}
return $this->find('count', compact('conditions')) == 0;
}

关于cakephp - Cake php 验证规则 'isUnique' 在编辑时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10528603/

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