Validation 具有自定义验证功能的Laravel 5.2自定义验证消息

Validation 具有自定义验证功能的Laravel 5.2自定义验证消息,validation,laravel-5.2,Validation,Laravel 5.2,我想创建带有自定义验证错误消息的自定义验证规则。为此,我创建了一个规则: $rule => [ 'app_id' => 'isValidTag' ] 对于自定义消息: $message => [ app_id.isValidTag => 'Not a Valid id' ]; 之后,我创建了服务提供商: class CustomValidationServiceProvider extends ServiceProvider { public

我想创建带有自定义验证错误消息的自定义验证规则。为此,我创建了一个规则:

$rule => [
    'app_id' => 'isValidTag'
]
对于自定义消息:

$message => [
   app_id.isValidTag   => 'Not a Valid id'
];
之后,我创建了服务提供商:

class CustomValidationServiceProvider extends ServiceProvider
{
    public function boot() {

    //parent::boot();

    $this->app->validator->resolver(function($transator,$data,$rules,$messages){
            return new CustomValidator($transator,$data,$rules,$messages);
        });
    }
}
我的自定义验证类是:

class CustomValidator extends Validator {
    if(empty($parameters)) {
        return true;
    }

    $conext = $parameters[0];
    $tag = Tag::where('id', $value)->where('context', $conext)->get();

    $flag = false;
    if($tag->count() > 0) {
        $flag = true;
    }       

    return $flag;
}
一切正常,但问题是我的
app\u id自定义消息。isValidTag
无法正常工作,即使所有其他消息都正常工作


请告诉我我在这里遗漏了什么,或者在Laravel 5.2中显示消息有一些更改。任何想法都将不胜感激。

这是一个很好的教程:

我想是你干的,拉威尔4号。这就是在Laravel 5.2中的实现方式 在我的示例中,我制作了注册授权表,因此像AuthController.php这样的文件是预先制作的:

  • AuthController.php

    Validator::make($data, [
        ...
        // add your field for validation
        'name_of_the_field' => 'validation_tag', // validation tag from validation.php
        ...
    
  • CustomAuthProvider.php //如果未创建自定义提供程序,请使用Providers/AppServiceProvider.php

    public function boot() {
        ...
        Validator::extend('validation_tag', function($attribute, $value, $parameters, $validator) {
                // handle here your validation
                if (  your_query ) {
                    return true;
                }
                return false;
        });
    
  • validation.php

    ...
    // add your validation tag and message to be displayed
    'validation_tag'           => 'The field :attribute isn't good',
    ...
    
  • file.blade.php //要在页面末尾添加所有错误,请添加

    @if (count($errors) > 0)
          <div class="alert alert-danger">
                 <ul>
                       @foreach ($errors->all() as $error)
                             <li>{{ $error }}</li>
                       @endforeach
                 </ul>
           </div>
    @endif
    
    @if(计数($errors)>0)
    
      @foreach($errors->all()作为$error)
    • {{$error}}
    • @endforeach
    @恩迪夫

  • 以下是一个很好的教程:

    我想是你干的,拉威尔4号。这就是在Laravel 5.2中的实现方式 在我的示例中,我制作了注册授权表,因此像AuthController.php这样的文件是预先制作的:

  • AuthController.php

    Validator::make($data, [
        ...
        // add your field for validation
        'name_of_the_field' => 'validation_tag', // validation tag from validation.php
        ...
    
  • CustomAuthProvider.php //如果未创建自定义提供程序,请使用Providers/AppServiceProvider.php

    public function boot() {
        ...
        Validator::extend('validation_tag', function($attribute, $value, $parameters, $validator) {
                // handle here your validation
                if (  your_query ) {
                    return true;
                }
                return false;
        });
    
  • validation.php

    ...
    // add your validation tag and message to be displayed
    'validation_tag'           => 'The field :attribute isn't good',
    ...
    
  • file.blade.php //要在页面末尾添加所有错误,请添加

    @if (count($errors) > 0)
          <div class="alert alert-danger">
                 <ul>
                       @foreach ($errors->all() as $error)
                             <li>{{ $error }}</li>
                       @endforeach
                 </ul>
           </div>
    @endif
    
    @if(计数($errors)>0)
    
      @foreach($errors->all()作为$error)
    • {{$error}}
    • @endforeach
    @恩迪夫

  • 您还可以使用
    $validator->setCustomMessage(['.=>''])
    @user3632055直接在函数中添加错误消息,如果您在那里,我需要一点帮助help@lewis4u怎么了?我解决了我的问题…但是thanx…是关于自定义规则的验证消息。我进行了本地化,需要将消息放在validation.php文件中。您也可以使用
    $validator->setCustomMessage(['.=>''])
    @user3632055直接在函数中添加错误消息。如果您在那里,我需要一点帮助help@lewis4u怎么了?我解决了我的问题…但是thanx…是关于自定义规则的验证消息。我进行了本地化,需要将消息放在validation.php文件中