简单的小项目在自定义验证字段时,数据插入数据库可以正常验证!想要在数据更新时也使用本套验证方法,就是一个字段比如catename字段,需要验证是否存在,然后在数据库中是否是唯一一个.ThinkPHP5以下自定义验证是代码:(很简单的)class Admin extends validate{
protected $rule = [
'catename' => 'unique:cate|require|length:4,25'
];
protected $message = [
'catename.require' => '请填写栏目名称',
'catename.unique' => '栏目已存在',
'catename.length' => '长度不在3-5个字符',
];
}然后数据更新代码:model层 //栏目修改
public function edit($data)
{
$validate = new Admin();
if ($validate->check($data)) {//验证数据是否正确
$num = Cate::isUpdate(true)->save($data);
return $num;
} else {
return $validate->getError();
}
}
这里出现了一个问题:就是当我不做修改的时候数据是肯定修改失败的!因为没有做任何修改返回没有影响的行数!但是if判断那边他是执行的!也是执行成功的!就好比我修改的数据是"菜单栏",我不修改原样放进去它验证成功!我依稀记得更新操作都是先删除原始数据重新插入数据这样一个流程,那我判断唯一性就失效了!但是更新时我又要怎么判断他是否唯一呢!小白还请各位给点意见!
- 5 回答
- 0 关注
- 1019 浏览
添加回答
举报
0/150
提交
取消