【问题标题】:Laravel 5.8 Custom Validator resolver not workingLaravel 5.8 自定义验证器解析器不工作
【发布时间】:2019-09-08 07:20:14
【问题描述】:

我试图从我的 Laravel 5.6 迁移到 Laravel 5.8,尽管在我注入 CustomValidator 类时似乎有一个专门针对我的 Appservice 的错误,

这是我的 CustomValidator.php 类

   namespace App\Laravel\Services;

    use App\Laravel\Models\User as Account;
    use Illuminate\Validation\Validator;
    use Auth, Hash,Str,Input;

    class CustomValidator extends Validator {

        public function validateUniqueUsername($attribute,$value,$parameters){
            $account_id = (is_array($parameters) AND isset($parameters[0]) ) ? $parameters[0] : "";
            $username = Str::lower($value);
            $is_exist = Account::whereRaw("LOWER(username) = '{$username}'")
                                ->first();
            return $is_exist ? FALSE: TRUE;
        }
   }

然后这是我的 AppServiceProvider.php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use App\Laravel\Services\CustomValidator;
use Validator;


class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {

        Validator::resolver(function($translator, $data, $rules, $messages)
        {
            return new CustomValidator($translator, $data, $rules, $messages);
        });
    }

请考虑在我的自定义验证器中,我为自己的平台创建了很多自定义验证器。

我收到这种错误。

【问题讨论】:

  • 无论哪种方式,这个设置在我的 laravel 5.6 中都没有成功,我们从 laravel 5.2 开始就一直在使用这个配置

标签: php laravel laravel-5.8


【解决方案1】:

我认为您正在寻找Validator::extend,而不是如here 所述。

【讨论】:

  • 我们有超过 10 个自定义验证器。我们不能在 AppServiceProvider 文件中做这样的事情。我们需要作为一个类存储在某个地方。
猜你喜欢
  • 2011-09-04
  • 2012-04-20
  • 2016-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多