Laravel 4.2中的自定义验证电话号码


Custom Validate Phone numbers in Laravel 4.2

我想使用Laravel 4.2中自定义的验证类来验证电话号码。

这是我的代码:

class PhoneValidationRule extends 'Illuminate'Validation'Validator {
     public function validatePhone($attribute, $value, $parameters)
     {
        return preg_match("/^'+'d[0-9]{11}", $value);
     }
}
// Register your custom validation rule
Validator::resolver(function($translator, $data, $rules, $messages)
{
    return new PhoneValidationRule($translator, $data, $rules, $messages);
});

我想接受国际格式的电话号码,后面跟着11位数字(肯尼亚的所有手机都有12位数字,例如+254721***661)。

我使用了这个有用的工具来验证preg_match-the-regex。

然后我继续前进,以这种方式在app/start/global.php自动加载课堂

ClassLoader::addDirectories(array(
    app_path().'/commands',
    app_path().'/controllers',
    app_path().'/models',
    app_path().'/database/seeds',
    app_path().'/PhoneValidator.php',
));

我的问题是,我将如何在验证输入时使用新规则?

您可以通过调用手机验证规则

'phone_number' => 'phone',

Validator::make(Input::all(),['phone_number' => 'phone'])

并移动

//Register your custom validation rule
Validator::resolver(function ($translator, $data, $rules, $messages) {
   return new PhoneValidationRule($translator, $data, $rules, $messages);
});

app'start'global.php