2015-07-20 2 views
1

Я пытаюсь зарегистрировать новую пользовательскую проверку, но получаю эту ошибку:Пользовательские проверки возвращает «Метод [validateAlphaSpace] не существует» в Laravel 5

Method [validateAlphaSpace] does not exist. [Laravel 5]

Вот мой код:

CustomValidator.php

<?php namespace App; 
use Illuminate\Validation\Validator; 
class CustomValidator extends Validator { 

    public function alpha_space($attribute, $value, $parameters) 
    { 
     return preg_match('/^[a-zA-Z0-9\s]+$/u', $value); 
    } 

} 

ValidatorServicePorvider.php

<?php namespace App\Providers; 

use Illuminate\Support\ServiceProvider; 
use Illuminate\Support\Facades\Validator; 
use App\CustomValidator; 
class ValidatorServicePorvider extends ServiceProvider { 

/** 
    * Bootstrap any necessary services. 
    * 
    * @return void 
    */ 
public function boot() 
{ 

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

/** 
    * Register the service provider. 
    * 
    * @return void 
    */ 
public function register() 
{ 

} 

} 

Я также регистрирую провайдер внутри app.php ... Любой может видеть, что является проблемой?

+2

ошибка уже сказал вам, что происходит, вы должны изменить свое имя метода «alpha_space» в «validateAlphaSpace» , что это Laravel способ добавить пользовательскую проверку –

+0

вы можете принять смотреть на [ Пользовательские правила валидации] (http://laravel.com/docs/4.2/validation#custom-validation-rules) –

ответ

1

Метод в классе пользовательского валидатора должен иметь префикс «проверять». В вашем случае попробуйте переименовать метод alpha_space в validateAlphaSpace.

Смежные вопросы