首页 > 解决方案 > 使验证成为 laravel 中的唯一整数输入

问题描述

我需要验证 (request_number) 输入是唯一的整数,如果学生写一个字符串作为示例,则显示一条消息。如果用户写入现有号码的消息是(您的订单号码存在),如果用户写入非整数值的消息是(输入应该是唯一的号码)现在我想对(request_number)进行双重验证)。

这是我在控制器中的商店

     public function store(Request $request)
     {
        $excuse = new Student();
        $excuse->request_number = $request->input('request_number');
        $validatedData = $request->validate([
            'request_number' => Rule::unique('students')->where(function ($query)
            {
              return  $query->whereIn('status_id',[2,4,6,5]);
            })]);

        $excuse->student_id = Auth::guard('web')->user()->id;
        $excuse->status_id = 1;
        $excuse->college_id = Auth::guard('web')->user()->college_id;
        $excuse->save();
        return redirect('/students');
     }

这是我提出请求的表格

<form method="post" action="{{url('/student')}}" enctype="multipart/form-data">
@csrf

  <h1> Make order FORM</h1>

  <div class="form-group">
    <label for="requestnumber">   write the Request Number </label><br>
    <input type="text" id="request_number" name="request_number"class="form-control" minlength="5" style="width:50%" required >
  </div>
  @if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li> the number of request is exists </li>
            @endforeach
        </ul>
    </div>
@endif
  <br>
     <button type="submit" class="btn btn-primary">send</button><br>
      </form>

标签: phplaravelvalidation

解决方案


$validatedData = $request->validate([
                    'request_number ' => [
                        'required', 'integer', function($attr, $val, $fail) {
                             if (YourTargetModel::where('id', [1,2,3])->count() > 0) {
                                 return $fail("The request number field should be 
                                              unique");
                             }
                    }]
                ]);

推荐阅读