[求助]unique验证字段唯一性报错

浏览:2528 发布日期:2017/01/05 分类:ThinkPHP5专区
<?php
namespace app\admin\validate;
use think\Validate;

class Cate extends Validate
{
    protected $rule = [
        'catename' => 'require|max:25|unique',
    ];

    //错误提示:
    protected $message = [
        'catename.require' => '栏目名称必须填写',
        'catename.max' => '栏目名称长度不得大于25位',
        'catename.unique' => '栏目名称已存在',

    ]; 

    protected $scene = [
        'add' => ['catename'=>'require|unique'],
        'edit' => ['catename'=>'require'],
    ];
}
要验证catename这个字段的唯一性,再次添加的时候,如果数据库中已经有了,就要提示已经存在。

控制器中的写法:public function add()
    {
        if(request()->isPost()){
            $data = [
                'catename'=>input('catename'),
            ];
            $validate = \think\Loader::validate('Cate');
            if(!$validate->scene('add')->check($data)){
                $this->error($validate->getError());
                die;
            }
            if(Db::name('cate')->insert($data)){
                return $this->success('添加栏目成功','lst');//添加成功后跳转到lst方法;
            }else{
                return $this->error('添加栏目失败,请稍后重试');
            }
            return;
        }
        return $this->fetch();
    }
但实际上在操作添加栏目的时候就提示错误:
最佳答案
评论( 相关
后面还有条评论,点击查看>>