菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
2954
1

【Request 验证类】排除当前页面字段验证

原创
05/13 14:22
阅读数 3408

一直认为处理好细节可以更好的拥有体验性,无论前台后台。所以在使用Request验证类发现了一个小的细节问题,当使用unique:attrs,aname时会验证提交的内容在attrs表中查找aname字段下的值是否存在,表面上看起来没有任何问题,但是在编辑时如果不修改内容直接提交数据就会提示已经存在,如果说我想编辑数据时候突然不想编辑了,难道一定要返回才可以吗,直接点击保存数据也会拥有更好的体验性。

file

解决方法

只需要在request验证类中,unique验证规则后增加第三个参数即可,这样我们创建属性时候会验证我们填写的名称是否存在,编辑时候会通过路由获取到当前的id然后排除掉。

···
···
    public function rules()
    {

        //为了要知道排除谁不验证,应该获取当前路由里面的参数
        $id = $this->route('attr');

        //第一个参数是指定表名
        //第二个参数是指定在这个表中的那个字段要验证唯一
        //第三个参数是在验证的时候要排除的编号
        return [
            'aname' => 'required|unique:attrs,aname,' . $id['id'],
        ];
    }

    public function messages()
    {
        return [
            'aname.required' => '属性名称不能为空',
            'aname.unique' => '属性名称已存在'
        ];
    }
···
···

发表评论

0/200
2954 点赞
1 评论
收藏
为你推荐 换一批