鍍金池/ 教程/ PHP/ Laravel驗證
Laravel操作數(shù)據(jù)庫
Laravel會話(session)
Laravel文件上傳
Laravel Cookie
Laravel Facades
Laravel應(yīng)用程序結(jié)構(gòu)
Laravel響應(yīng)
Laravel插入數(shù)據(jù)庫表數(shù)據(jù)
Laravel錯誤處理
Laravel環(huán)境安裝配置
Laravel本地化
Laravel Ajax
Laravel路由
Laravel錯誤和日志記錄
Laravel檢索查詢數(shù)據(jù)
Laravel更新數(shù)據(jù)
Laravel刪除數(shù)據(jù)
Laravel表單處理
Laravel中間件
Laravel控制器
Laravel驗證
Laravel安全
Laravel請求
Laravel發(fā)送郵件
Laravel重定向
Laravel教程
Laravel配置
Laravel事件處理
Laravel視圖

Laravel驗證

在設(shè)計的應(yīng)用程序驗證是最重要的一個方面。它會驗證輸入的數(shù)據(jù)。默認情況下,基本控制器類使用一個 ValidatesRequests 其提供一個多種強大的驗證規(guī)則和方法來驗證傳入的HTTP請求。

Laravel可用的驗證規(guī)則

Laravel可用的驗證規(guī)則
Accepted Active URL After (Date)
Alpha Alpha Dash Alpha Numeric
Array Before (Date) Between
Boolean Confirmed Date
Date Format Different Digits
Digits Between E-Mail Exists (Database)
Image (File) In Integer
IP Address JSON Max
MIME Types(File) Min Not In
Numeric Regular Expression Required
Required If Required Unless Required With
Required With All Required Without Required Without All
Same Size String
Timezone Unique (Database) URL

Laravel總是會檢查是否存在錯誤在會話數(shù)據(jù)中,如果它們都可用就會自動將其綁定到視圖。 因此,要注意,$error 變量總是會在每次請求視圖時都是可以訪問的,$errors 變量就類似在應(yīng)用中是始終定義的,可以放心使用。$errors 變量是 Illuminate\Support\MessageBag的一個實例??梢酝ㄟ^將代碼將錯誤消息顯示在視圖文件中,如下所示。

@if (count($errors) > 0)
   <div class = "alert alert-danger">
      <ul>
         @foreach ($errors->all() as $error)
            <li>{{ $error }}</li>
         @endforeach
      </ul>
   </div>
@endif

示例

第1步 - 通過執(zhí)行以下命令創(chuàng)建一個名為 ValidationController 的控制器。
php artisan make:controller ValidationController
第2步 - 成功執(zhí)行后,您會收到以下輸出 -
Laravel驗證

第3步 - 復(fù)制下面的代碼到文件- app/Http/Controllers/ValidationController.php 

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class ValidationController extends Controller {
   public function showform(){
      return view('login');
   }
   public function validateform(Request $request){
      print_r($request->all());
      $this->validate($request,[
         'username'=>'required|max:8',
         'password'=>'required'
      ]);
   }
}
第4步 - 創(chuàng)建一個名為 resources/views/login.blade.php 的視圖文件,并復(fù)制下面的代碼放入到此文件中。

resources/views/login.blade.php

<html>
   
   <head>
      <title>登錄示例表單</title>
   </head>

   <body>
      
      @if (count($errors) > 0)
         <div class = "alert alert-danger">
            <ul>
               @foreach ($errors->all() as $error)
                  <li>{{ $error }}</li>
               @endforeach
            </ul>
         </div>
      @endif
      
      <?php
         echo Form::open(array('url'=>'/validation'));
      ?>
      
      <table border = '1'>
         <tr>
            <td align = 'center' colspan = '2'>登錄示例</td>
         </tr>
         
         <tr>
            <td>用戶名:</td>
            <td><?php echo Form::text('username'); ?></td>
         </tr>
         
         <tr>
            <td>密碼:</td>
            <td><?php echo Form::password('password'); ?></td>
         </tr>
         
         <tr>
            <td align = 'center' colspan = '2'>
               <?php echo Form::submit('登陸'); ?  ></td>
         </tr>
      </table>
      
      <?php
         echo Form::close();
      ?>   
   </body>
</html> 

第5步 - 添加以下行到 app/Http/routes.php.

app/Http/routes.php

Route::get('/validation','ValidationController@showform');
Route::post('/validation','ValidationController@validateform');
第6步 - 請訪問以下網(wǎng)址進行測試驗證。

http://localhost:8000/validation


 第7步 - 無需在文本字段中輸入任何內(nèi)容直接點擊“登錄”按鈕。 輸出將如下面的圖所示。