Laravel驗證

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

Laravel可用的驗證規則

Laravel可用的驗證規則
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總是會檢查是否存在錯誤在會話數據中,如果它們都可用就會自動將其綁定到視圖。 因此,要注意,$error 變數總是會在每次請求視圖時都是可以訪問的,$errors 變數就類似在應用中是始終定義的,可以放心使用。$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步 - 通過執行以下命令創建一個名為 ValidationController 的控制器。
php artisan make:controller ValidationController
第2步 - 成功執行後,您會收到以下輸出 -
Laravel驗證

第3步 - 複製下麵的代碼到檔- 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步 - 創建一個名為 resources/views/login.blade.php 的視圖檔,並複製下麵的代碼放入到此檔中。

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步 - 請訪問以下網址進行測試驗證。

http://localhost:8000/validation


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


上一篇: Laravel會話(session) 下一篇: Laravel檔上傳