我正在尝试验证一个有电话号码的表单,我们希望它正好是10位数。但即使输入正确,它也会出错。我在控制器中使用以下代码,因此请告知需要更改的内容。
public function tytraining(Request $request)
{
$this->validate($request, [
'txt_name' => 'required',
'txt_email' => 'required|email',
'txt_phone' => 'required|numeric|between:9,11'
]);
$name = Input::get('txt_name');
$email = Input::get('txt_email');
$phone = Input::get('txt_phone');
$type = "bls-training";
$url = '?' . Input::get('url');
$medicalRequest = new ParseObject("MedicalRequest");
$medicalRequest->set("name", $name);
$medicalRequest->set("email", $email);
$medicalRequest->set("phone", $phone);
$medicalRequest->set("type", $type);
$medicalRequest->set("requestMessage", "training");
$medicalRequest->set("url", $url);
try {
$medicalRequest->save();
} catch (ParseException $ex) {
echo(' Some Error Occured');
}
}
请告知我应该如何通过Laravel进行验证..
提前感谢大家花了宝贵的时间,完成我的顾虑并帮助我。
答案 0 :(得分:6)
使用大小和数字验证 https://laravel.com/docs/5.3/validation#rule-digits
$this->validate($request, [
'txt_name' => 'required',
'txt_email' => 'required|email',
'txt_phone' => 'required|digits:10'
]);
答案 1 :(得分:1)
你还没有提到你的Laravel版本,但至少从Laravel 4.2开始,你有digits rule这就是你需要的,所以你的手机规则应该是这样的:
'txt_phone' => 'required|numeric|digits:10'
答案 2 :(得分:1)
对于字符串长度(精确):
public function rules()
{
return [
'input' => 'required|string|size:10'
];
对于数字长度(精确):
public function rules()
{
return [
'input' => 'required|string|digits:10'
];
}
对于字符串范围:
public function rules()
{
return [
'input' => 'required|string|min:5|max:10'
];
}
对于数字范围:
public function rules()
{
return [
'input' => 'required|digits_between:5,10'
];
}
答案 3 :(得分:0)
如果您要验证字符串,则可以使用Laravel的'size:N'
rule:
对于字符串数据,值对应于字符数。对于数字数据,值对应于给定的整数值。对于数组,大小对应于数组的计数。对于文件,大小对应于以千字节为单位的文件大小。
例如:
X Y C result
0 0 5 add 5
1 1 6 add 7
2 2 7 mult 14
3 3 8 mult 24
4 4 9 mult 36
答案 4 :(得分:0)
您应该使用此验证来验证9到11之间或只有10位数字的电话/手机号码。
'txt_phone' => 'numeric|digits_between:9,11'