我想使用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',
));
我的问题是,如何在验证输入时使用新规则?
答案 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