【问题标题】:how to validate Unique database field on Controller in laravel如何在 laravel 中验证 Controller 上的唯一数据库字段
【发布时间】:2021-10-15 01:05:30
【问题描述】:

Good Day,我是 Laravel 环境的新手。我正在开发一个简单的学校注册注册网站,但无法在我的控制器上进行验证..

我的计划是,当用户在网站上注册时,如果用户名已被其他学生使用,则应该验证用户名文本框。我尝试了我在网上找到的所有可能的教程,但我没有运气......

这是我的页面,如果输入的用户名已经存在于数据库中,则应验证红色圆圈..

.blade 中的完整代码

           <!--Registration  start here -->
           <form method="Post" action="{{url('store_account_Registration')}}">
            @csrf 
           
            @if(Session::get('success'))
             <div class="alert alert-danger">
                 {{ Session::get('success')}}
             </div>
            @endif

            @if(Session::get('fail'))
             <div class="alert alert-danger">
                 {{ Session::get('fail')}}
             </div>
            @endif
           <div class="col-sm-12 form-group">
              <input type="hidden" class="form-control" name="uniqID3" id="uid" placeholder="Enrollment Registration Number"  value="{{ $regid3 }}" >
           </div>
           <div class="col-sm-12 form-group">
             <input type="hidden" class="form-control" name="pfulname3" id="name-f" placeholder="Enrollment Registration Number" required value="{{ $fulname4 }}" >
           </div>
           <div class="container-fluid" style="margin-bottom: 2em">
            <div class="row justify-content-center align-items-center" style="padding: 10px">
               <div class="card col-md-5" style="transform: none;>
               
                     <div class="card-body">
                        <div class="alert alert-primary" role="alert" style="margin-top: 1em">
                          <p>Name: <strong>{{ $fulname4 }}</strong></p>
                          <p>Enrollment No.: <strong>{{ $regid3 }}</strong></p>
                        </div>
                         
                            <input type="hidden" class="hide" id="csrf_token" name="csrf_token" value="C8nPqbqTxzcML7Hw0jLRu41ry5b9a10a0e2bc2">
                            <div class="row">
                                    <div class="col-md-12">
                                      <div class="form-group">
                                        <label>Username</label>
                                        <div class="input-group">
                                          <div class="input-group-prepend">
                                            <span class="input-group-text"><i class="fa fa-user" aria-hidden="true"></i></span>
                                          </div>
                                          <input type="text" class="form-control" name="username" id="username" placeholder="Username" required value="{{ old('username')}}"  >
                                         
                                        </div>
                                        <div class="help-block with-errors text-danger">
                                          <span style="color:red">@error('username'){{ $message}}@enderror</span>
                                        </div>
                                      </div>
                                    </div>
                            </div>
                            <div class="row">
                                  <div class="col-md-12">
                                    <div class="form-group">
                                      <label>Password</label>
                                      <div class="input-group">
                                        <div class="input-group-prepend">
                                          <span class="input-group-text"><i class="fa fa-lock" aria-hidden="true"></i></span>
                                        </div>
                                        <input type="password" id="password" name="password" pattern="^\S{6,}$" onchange="this.setCustomValidity(this.validity.patternMismatch ? 'Must have at least 6 characters' : ''); if(this.checkValidity()) form.password_two.pattern = this.value;" class="form-control"  title="Password is needed" required placeholder="Password" >
                                        
                                      </div>
                                      <div class="help-block with-errors text-danger">
                                        <span style="color:red">@error('password'){{ $message}}@enderror</span>
                                      </div>
                                    </div>
                                  </div>
                            </div>
                            <div class="row">
                                <div class="col-md-12">
                                  <div class="form-group">
                                    <label>Confirm Password</label>
                                    <div class="input-group">
                                      <div class="input-group-prepend">
                                        <span class="input-group-text"><i class="fa fa-lock" aria-hidden="true"></i></span>
                                      </div>
                                      <input id="password_two" type="password" name="password_two" pattern="^\S{6,}$" onchange="this.setCustomValidity(this.validity.patternMismatch ? 'Please enter the same Password as above' : '');" placeholder="Confirm Password" class="form-control"  title="Confirm Password is needed" required placeholder="Confirm Password" >
                                      
                                    </div>
                                    <div class="help-block with-errors text-danger">
                                      <span style="color:red">@error('password_two'){{ $message}}@enderror</span>
                                    </div>
                                  </div>
                                </div>
                          </div>
                            
                            <div class="row" style="margin-top: 1em" >
                              <div class="col-md-12" style="margin-bottom: 2em">
                                <input type="hidden" name="redirect" value="">
                              <!--  <button type="submit" class="btn btn-primary btn-lg btn-block" name="submit">Save OASIS Account</button> -->
                               <!--  < <a href="enrollment_success"><p class="btn btn-primary btn-lg btn-block">Save OASIS Account</p></a> -->
                                <button type="submit" class="btn btn-primary btn-lg btn-block">Save OASIS Account</button> 
                              </div>
                            </div>
                         
                      </div>
             </div>
          </div>
        </div>
           <!--Registration  start here -->
        
    
        </div>
      </form> 
enter code here

我总是收到这个错误..

这是我的代码..

  1. 我在控制器中的验证 公共函数 store_account_Registration(请求 $request) {

     request()->validate([
         'username' => 'required|min:6|unique:TempAccount,AccountName,'
     ]);
    

    // $this->validator($request->all())->validate();

     $current_date = date('Y-m-d H:i:s');
     $query = DB::table('TempAccount')->insert([
             'RegID'=>$request->input('uniqID3'),
             'FullName'=>$request->input('pfulname3'),
             'AccountName'=>$request->input('username'),
             'Pass'=>$request->input('password'),
             'created_at'=> $current_date,
             'updated_at'=> $current_date,
    
     ]);
    
    
    
     if($query){
         return back()->with('success', 'Data has been Successfyll inserted');
    
      //   return view('pages.enrollment_success');
    
    
        // return redirect()->route('pages.enrollment_GradeLevelSchoolInfo', ['uniqIDd' => 1]);
      //  return redirect('enrollment_GradeLevelSchoolInfo');
    
     }
     else
     {
         return back()->with('fail', 'something went wrong');
     }
    

    }

  2. 我在 web.php 中的路线

Route::get('pages',[accountregistration::class, 'index']); Route::Post('store_account_Registration', [accountregistration::class, 'store_account_Registration']);

  1. 我的行动在形式..

【问题讨论】:

    标签: laravel


    【解决方案1】:

    问题在于您的表格。您根本没有到达正确的路线。

    此外,您还缺少@csrf 令牌,或者至少没有显示在您的打印屏幕中

    <form action="{{url('store_account_Registration')}}" method="POST">
     @csrf 
    

    在您的验证中,您也可以删除 AccountName 之后的尾随逗号。

    【讨论】:

    • 我已经试过这个先生,但同样的错误......
      @csrf
    • 你得到同样的错误?运行php artisan optimize 清除路由/缓存。您的错误是与任何验证或其他内容无关的路线问题。
    • 粘贴整个表单代码。这应该可以工作,所以您的表单中有一些东西会破坏它。
    • 是的,正如我上面提到的,下一行中的某些内容破坏了您的表单。请包括您的整个表格或比这一行更大的部分。
    • 你可以试试这个:&lt;form action="{{ route('store_account_Registration') }}" method="post"&gt; 原样复制粘贴即可。此外,您的表格中还有另一个错误。检查这一行:&lt;div class="card col-md-5" style="transform: none;&gt; 您缺少第二个双引号:&lt;div class="card col-md-5" style="transform: none";&gt;
    猜你喜欢
    • 1970-01-01
    • 2019-03-24
    • 2023-04-09
    • 2014-03-14
    • 2015-05-15
    • 2020-08-02
    • 1970-01-01
    • 2019-02-16
    • 2018-08-09
    相关资源
    最近更新 更多