添加自定义验证器

时间:2014-07-26 05:29:36

标签: laravel-4

我正在尝试使用此gist,它会添加一个自定义规则来验证允许使用空格的字母。

在我的项目中,我添加了一个新文件夹,该文件夹使用PSR-0进行自动加载,以包含任何其他文件,例如帮助程序,存储库。

"psr-0": {
    "MW": "app/"
}

我已根据文件夹结构命名它们

应用/ MW / CustomValidatorServiceProvider.php

<?php namespace MW;

use Illuminate\Support\ServiceProvider;
use Validators\CustomValidator;

class CustomValidatorServiceProvider extends ServiceProvider {
    public function register(){}

    public function boot()
    {
        $this->app->validator->resolver(function($translator, $data, $rules, $messages)
        {
            return new CustomValidator($translator, $data, $rules, $messages);
        });
    }

}

应用/ MW /验证/ CustomValidator.php

<?php namespace MW\Validation;

use Illuminate\Validation\Validator;

class CustomValidator extends Validator {

    public function validateAlphaSpaces($attribute, $value, $params)
    {
        return preg_match('/^[\pL\s]+$/u', $value);
    }
}

我也在app.php

注册了它
'providers' => array(
    'MW\CustomValidatorServiceProvider'
);

我也做过composer dump-autoload -o

我的问题是为什么当我尝试在我的规则中使用它时

'first_name'=> 'required|alpha_spaces|min:2'

并验证它我收到以下错误

  

/var/www/mw/app/MW/CustomValidatorServiceProvider.php

     

Class&#39; Validators \ CustomValidator&#39;找不到

1 个答案:

答案 0 :(得分:0)

您从CustomValidators命名空间而不是Validators命名空间中导入MW\Validators

它应该是这样的:

use MW\Validators\CustomValidator;