【问题标题】:Laravel - BadMethodCallException: Method Illuminate\Validation\Validator::validatePatternName does not existLaravel - BadMethodCallException:方法 Illuminate\Validation\Validator::validatePatternName 不存在
【发布时间】:2021-11-22 04:00:27
【问题描述】:

patternName 字段中的值存储在course_patterns 表的pattern_name 列中。当我为此字段添加唯一验证时,收到错误BadMethodCallException: Method Illuminate\Validation\Validator::validatePatternName does not exist in file C:\wamp64\www\Laravel\projects\abcd\vendor\laravel\framework\src\Illuminate\Validation\Validator.php on line 1509。否则,一切工作正常。由于软删除的行不计入unique 验证,我添加了下面的代码,这对我的另一个项目很好。我该如何解决这个问题?

 public function update(Request $request, $id){
    $validator=Validator::make($request->all(),
        [
          'patternName'=>['required','string','pattern_name',Rule::unique('course_patterns')->where('function($query){
            return $query->whereNull('deleted_at');
          })->ignore($id)],
         'file'=>'nullable|image',
         'contentTypeId'=>'nullable|integer'
       ]);
 }

【问题讨论】:

    标签: php laravel validation eloquent laravel-8


    【解决方案1】:

    默认情况下,唯一性规则将检查与正在验证的属性匹配的列的唯一性。但是,如果名称不同,您可以传递第二个参数

    public function update(Request $request, $id){
        $validator=Validator::make($request->all(),
            [
              'patternName'=>['required','string',Rule::unique('course_patterns','pattern_name')->where('function($query){
                return $query->whereNull('deleted_at');
              })->ignore($id)],
             'file'=>'nullable|image',
             'contentTypeId'=>'nullable|integer'
           ]);
     }
    

    【讨论】:

      猜你喜欢
      • 2018-10-04
      • 2021-04-07
      • 1970-01-01
      • 1970-01-01
      • 2020-02-08
      • 2022-11-04
      • 1970-01-01
      • 2020-01-23
      • 1970-01-01
      相关资源
      最近更新 更多