欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

使用 callback 自动验证字段唯一

程序员文章站 2022-06-11 08:15:35
...
使用 callback 使add 和 update 使用一个自动验证条件

ThinkPHP 3.x 之后的版本已经支持更新时自动验证唯一.
所以此代码失效, 感谢微博 @小杰_Dino 告知.

=====2014-05-12 之前的内容====
让检查唯一合并为一个验证条件.
如果你有更好的, 欢迎一起讨论.public $_validate = array(
array('name', 'chkUniName', '英文代码已经存在.', self::EXISTS_VALIDATE, 'callback'),

放在 CommonModel 中.
//检查唯一
public function chkUni($field){
if(empty($field)){
return false;
}
$map = array();
$pk = $this->getPk();
//如果有主键传入, 说明是编辑, 加入排除自己的条件.
if(!empty($_REQUEST[$pk])){
$map[$pk] = array('neq', intval($_REQUEST[$pk]));
}
$map[$field] = array('eq', trim($_REQUEST[$field]));
if(null === $this->where($map)->find()){
return true;
}else{
return false;
}
}

//检查 name 是否存在
protected function chkUniName(){
return $this->chkUni('name');
}

AD:真正免费,域名+虚机+企业邮箱=0元