【问题标题】:Laravel 5.0 Custom Validation Method not Found未找到 Laravel 5.0 自定义验证方法
【发布时间】:2017-10-29 11:45:14
【问题描述】:

我有一个适用于我的开发服务器的自定义验证规则,但是当我将它推送到我的生产服务器时,它变成了错误。它说没有找到方法 [validationFoo]。这是我的代码:

AppServiceProvide.php

public function boot()
{
Validator::extend('is_even_length', function($attribute, $value, $params, $validator){
    return strlen($value)%2==0;
});

Validator::replacer('is_even_length', function($message, $attribute, $rule, $params) {
    return str_replace('_', ' ' , 'The '. $attribute .' must have an even length !!' );
});
}

这是我的控制器

  $rules = [
        'test' => 'required|max:16|min:12|is_even_length'
    ];

    $validator = Validator::make(Input::get(),$rules);`

我已经包含

    use Illuminate\Support\Facades\Input;
    use Illuminate\Support\Facades\Validator;

在我的 AppServiceProvider.php 和我的控制器上

我的代码有什么问题吗?

谢谢

【问题讨论】:

  • 你的错误是Method [validationFoo] not Found。这似乎与您的自定义规则无关。您的应用程序中可能有一些测试代码。检查有关错误的更多详细信息,并查看它被调用的位置。
  • @Sandeesh 嗨,对不起,我的意思是我的错误是 [validationIsEvenLenght] 未找到。 Validator.php 第 2615 行
  • is_even_lengthvalidationIsEvenLenght gthght 之间有错字
  • @linktoahref :sry 看起来我这里有错字。这是我的错误消息:方法 [validateIsEvenLength] 不存在。这是我的自定义验证规则:is_even_length
  • @Sandy 看起来您的自定义规则没有被注册,并且 laravel 默认在它的基类中查找方法。尝试运行php artisan clear-compiled。您也可以使用use Input;use Validator;,因为它们已经注册了外观。

标签: laravel validation laravel-5


【解决方案1】:

看起来您的自定义规则没有注册,并且 laravel 默认在其基类中查找方法。尝试运行php artisan clear-compiled。您也可以使用use Input;use Validator;,因为它们已经注册了外观。

【讨论】:

    【解决方案2】:

    这是因为is_even_length 不存在于resources/lang/en/validation.php

    在你的引导中

    Validator::extend('is_even_length', function($attribute, $value, $parameters,  
    validator) {
         if(!empty($value) && (strlen($value) % 2) == 0){
             return true;
         }
         return false;
    });
    

    然后在resources/lang/en/validation.php 中添加您的验证消息,例如

    'is_even_length' => "The :attribute must have an even length.",
    

    【讨论】:

    • 它仍然是错误的,我没有在我的资源/lang/en/validation.php 上添加它,它在我的开发服务器和我的本地主机上运行良好
    猜你喜欢
    • 1970-01-01
    • 2018-05-12
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    • 2014-10-02
    • 2021-11-21
    • 2012-11-27
    • 1970-01-01
    相关资源
    最近更新 更多