我想验证用户输入的电话号码,其中数字应该正好是 11 并以 01 开头,值字段应该只是数字。我如何使用 Laravel 验证来做到这一点?
这是我的控制器:
public function saveUser(Request $request){
$this->validate($request,[
'name' => 'required|max:120',
'email' => 'required|email|unique:users',
'phone' => 'required|min:11|numeric',
'course_id'=>'required'
]);
$user = new User();
$user->name= $request->Input(['name']);
$user->email= $request->Input(['email']);
$user->phone= $request->Input(['phone']);
$user->date = date('Y-m-d');
$user->completed_status = '0';
$user->course_id=$request->Input(['course_id']);
$user->save();
return redirect('success');
}
原文由 User57 发布,翻译遵循 CC BY-SA 4.0 许可协议
一种可能的解决方案是使用正则表达式。
这将检查输入是否以 01 开头,后跟 9 个数字。通过使用正则表达式,您不需要
numeric
或size
验证规则。如果您想在其他地方重用此验证方法,最好创建自己的验证规则来验证电话号码。
文档:自定义验证
在您的
AppServiceProvider
的boot
方法中:这将允许您在应用程序的任何地方使用
phone_number
验证规则,因此您的表单验证可以是:在您的验证器扩展中,您还可以检查
$value
是否为数字和 11 个字符长。