laravel表单验证唯一性的时候,排除修改时的验证

第一次我写了一个普通的验证,然后到了修改的时候一直报错,说是字段不能重复!

	//验证规则
	public function rules()
    {
    
    
        return [
            'name' => 'required|between:2,100|unique:addresses,name',
            'url' => 'required|between:2,200',
            'password' => 'nullable|between:1,150',
            'state' => 'required',
        ];
    }
    //错误信息处理
    public function messages()
    {
    
    
        return [
            'name.required' => '游戏名称不能为空',
            'name.unique' => '游戏名称已存在',
            'url.required' => '下载地址不能为空',
            'state.required' => '栏目状态不能为空',
            'name.between' => '游戏名称必须在2到100个字符之间',
            'url.between' => '游戏地址必须在2到200个字符之间',
            'password.between' => '下载密码必须在1到150个字符之间',

        ];
    }

后面发现,我的验证规则只写了添加请求,并没有写修改的规则,所以需要添加

//验证规则
    public function rules()
    {
    
    
    	//这里直接读取的是路由(route)提供的id
        $id = $this->route('address');
        return [
        	//此处注意,name后面一定要加逗号(,)不然他会把name和ID拼接,从而找不到字段报错
            'name' => 'required|between:2,100|unique:addresses,name,'.$id,
            'url' => 'required|between:2,200',
            'password' => 'nullable|between:1,150',
            'state' => 'required',
        ];
    }

    //错误信息处理
    public function messages()
    {
    
    
        return [
            'name.required' => '游戏名称不能为空',
            'name.unique' => '游戏名称已存在',
            'url.required' => '下载地址不能为空',
            'state.required' => '栏目状态不能为空',
            'name.between' => '游戏名称必须在2到100个字符之间',
            'url.between' => '游戏地址必须在2到200个字符之间',
            'password.between' => '下载密码必须在1到150个字符之间',

        ];
    }

这样就可以保证添加时的验证和修改时候的免验证了!
好了,教程到此结束,祝大家技术越来越好!

猜你喜欢

转载自blog.csdn.net/lo6064200/article/details/104832750