Laravel验证的数字应该恰好是10位数

时间:2016-12-06 05:25:08

标签: php laravel

我正在尝试验证一个有电话号码的表单,我们希望它正好是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进行验证..

提前感谢大家花了宝贵的时间,完成我的顾虑并帮助我。

5 个答案:

答案 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'