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

时间:2015-03-25 15:06:16

标签: php regex validation laravel laravel-4

我想使用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)。

我已使用此useful tool来验证此正则表达式的preg_match。

然后我继续以app/start/global.php这种方式自动加载了这个类

ClassLoader::addDirectories(array(

    app_path().'/commands',
    app_path().'/controllers',
    app_path().'/models',
    app_path().'/database/seeds',
    app_path().'/PhoneValidator.php',

));

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

1 个答案:

答案 0 :(得分:1)

您可以通过

调用手机验证规则
'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