max:40', 'image' => 'required', '...

问题描述 投票:0回答:1
With the custom rule defined, you might use it in your controller validation like so :

Hope this helps...

$rules = ['user_Name' => 'required|max:40',
              'image' => 'required',
              'image.*' => 'image|mimes:jpeg,png,jpg,svg,bmp|max:8000',
             ];

 // To get name of all image file and display in it in error message 
    if($request->hasfile('image')){  
      $validationArrayImage = array(); 
      $validationArraySize = array();
      $validationArrayType = array();;

      foreach($request->imageas $key => $file){           

        // check file extension for image type
        if($file->getClientOriginalExtension() != 'jpeg' &&
           $file->getClientOriginalExtension() != 'png' && 
           $file->getClientOriginalExtension() != 'jpg' &&
           $file->getClientOriginalExtension() != 'svg' &&
           $file->getClientOriginalExtension() != 'bmp'){


           $validationArrayImage['image.'.$key.'.image'] = 'The ' .  $file->getClientOriginalName() . ' not an image file.';
           $validationArrayType['image.'.$key.'.mimes'] = 'The ' .  $file->getClientOriginalName() . ' must be a file of type: jpeg, png, jpg, svg, bmp.';

        }

        // check file size for image size
        if($file->getSize() >= 8000000){

             $validationArraySize['image.'.$key.'.max'] = 'The ' .  $file->getClientOriginalName() . ' may not be greater than 8 Megabytes.';
           }

      }



      // check names array if it empty or not
      if(!empty($validationArrayType) || !empty($validationArraySize) || !empty($validationArrayImage)){

        // but all names in custom error, message 

       $messages = [
             $validationArrayImage,
             $validationArrayType,
             $validationArraySize,
              ];
       //dd($messages);
      }   

    } 



 if(!empty($messages)){
              $result = Validator::make($request->all(), $rules, $messages);
              /*foreach ($messages as $message) {
                dump($message);                     <--- Here I can see the array 
             }
            dd("stop");*/

           }
           else{ 
               $result = Validator::make($request->all(), $rules);
                //dd('$result');
           }

我想在视图中获取一个特定文件的自定义错误信息数组。 enter image description here控制器

在dump函数中,我可以看到所有的自定义消息,但为什么我得到的是空数组?error exception Array to string conversion

               if(!empty($messages)){
              $result = Validator::make($request->all(), $rules, $messages);
              $errors = $result->errors();
              foreach ($errors->get('image.*') as $message) {
                dump($message);
            }
            dd("stop");
               //dd($result);
           }
           else{ 
               $result = Validator::make($request->all(), $rules);
                //dd('$result');
           }

error exception Array to string conversion我试了一下,但我得到的是

                        <!-- To get error message for multi file -->
                        @if (!empty($messages)))
                        <h1>There is an error in your input array</h1>
                        <ul>
                            @foreach($messages as $errors)
                            @foreach($errors as $error)
                            <li>{{ $error }}</li>
                            @endforeach
                            @endforeach
                        </ul>
                        @else
                        <strong>Not array</strong>
                        @endif

在balde中,我必须尝试获取数组中的所有消息,但我也得到了 error exception Array to string conversion

<!-- To get error message for multi  -->
                            @if ($errors->has('Bank_Logo.*'))
                            <span class="invalid-feedback" style="display: block;" role="alert">
                                @foreach($errors->get('Bank_Logo.*') as $errors)
                                @foreach($errors as $error)
                                <strong>{{ $error }}</strong>
                                @endforeach
                                @endforeach
                            </span>
                            @endif

查看巴德

另外,我也尝试了这个方法,但也出现了同样的错误。我想获取所有错误信息和每个文件的错误名称。

我知道如何获取所有的错误信息数组来查看吗?

php laravel laravel-blade laravel-5.8
1个回答
2
投票

$validatedData = $request->validate([
       'f_name' => 'required|min:8',
       'l_name' => 'required',
   ],
   [
    'f_name.required'=> 'Your First Name is Required', // custom message
    'f_name.min'=> 'First Name Should be Minimum of 8 Character', // custom message
    'l_name.required'=> 'Your Last Name is Required' // custom message
   ]
);

我试图获取一个数组的自定义错误信息在视图中为特定的filed控制器 $rules = ['user_Name' => 'required'(必填)

© www.soinside.com 2019 - 2024. All rights reserved.