zoukankan      html  css  js  c++  java
  • laravel 5.5 表单验证 添加自定义验证规则

    创建验证规则

    php artisan make:rule checkNameUnique
    //存放在 app/Rules 目录中
    <?php
    
    namespace AppRules;
    
    use IlluminateContractsValidationRule;
    use IlluminateSupportFacadesDB;
    
    class checkNameUnique implements Rule
    {
        protected $model;
        /**
         * Create a new rule instance.
         *
         * @return void
         */
        public function __construct($modelName)
        {
            $this->model = $modelName;
            DB::connection()->enableQueryLog();
        }
    
        /**
         * Determine if the validation rule passes.
         *
         * @param  string  $attribute
         * @param  mixed  $value
         * @return bool
         */
        public function passes($attribute, $value)
        {
            $id = request('id');
            if(!empty($id)){
                $map[] = ['id', '<>' ,$id];
            }
            $map[] = ['is_del', '=', 1];
            $map[] = [$attribute, '=', $value];
    
            $res = DB::table($this->model)->where($map)->first();
            if($res){
                return false;
            }
            return true;
    
        }
    
        /**
         * Get the validation error message.
         *
         * @return string
         */
        public function message()
        {
            return '名称已存在';
        }
    }
    //验证中调用自定义验证规则
    public function rules()
        {
            return [
                // 'brand_name' => 'required | unique:brands,brand_name',
                'brand_name' => ['required', new checkNameUnique('brands')],
                'brand_img' => 'image',
            ];
        }
  • 相关阅读:
    js,jQuery实现可关闭悬浮框广告特效,兼容(谷歌,火狐,Ie)
    各种选择框jQuery的选中方法
    表单校验demo
    两种方法实现城市级联菜单
    树形菜单
    匿名函数和鼠标移入移除事件
    多线程实例
    Lock锁
    Oracle语句
    Java NIO
  • 原文地址:https://www.cnblogs.com/zjj1990/p/9377201.html
Copyright © 2011-2022 走看看