Laravel-validation

提供:Dev Guides
移動先:案内、検索

Laravel-検証

検証は、アプリケーションを設計する際の最も重要な側面です。 着信データを検証します。 デフォルトでは、ベースコントローラークラスは、さまざまな強力な検証ルールを使用して着信HTTP要求を検証する便利な方法を提供する ValidatesRequests 特性を使用します。

Laravelで利用可能な検証ルール

Laravelは常にセッションデータのエラーをチェックし、利用可能な場合は自動的にビューにバインドします。 そのため、すべてのリクエストですべてのビューで $ errors 変数が常に利用可能であり、 $ errors 変数が常に定義されていて安全に使用できると便利に想定できることに注意することが重要です。 次の表は、Laravelで利用可能なすべての検証ルールを示しています。

Laravelで利用可能な検証ルール

受け入れられた

アクティブなURL

後(日付)

アルファ

アルファダッシュ

英数字

アレイ

前(日付)

の間に

ブール値

確認済み

Date

日付フォーマット

異なる

桁

間の数字

Eメール

存在する(データベース)

画像ファイル)

In

整数

IPアドレス

JSON

Max

MIMEタイプ(ファイル)

Min

ありませんで

数値

正規表現

必須

必要な場合

必要な場合を除き

必須

すべてで必須

なしで必要

すべてなしで必要

Same

Size

ひも

タイムゾーン

ユニーク(データベース)

URL

*$ 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 --plain
  • ステップ2 *-実行が成功すると、次の出力が表示されます-

ValidationController

  • ステップ3 *-次のコードをコピーします
*app/Http/Controllers/ValidationController.php* ファイル。
*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>Login Form</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'>Login</td>
         </tr>
         <tr>
            <td>Username</td>
            <td><?php echo Form::text('username'); ?></td>
         </tr>
         <tr>
            <td>Password</td>
            <td><?php echo Form::password('password'); ?></td>
         </tr>
         <tr>
            <td align = 'center' colspan = '2'
               ><?php echo Form::submit('Login'); ?  ></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 *-次のURLにアクセスして、検証をテストします。
http://localhost:8000/validation

ステップ7 *-テキストフィールドに何も入力せずに「ログイン」*ボタンをクリックします。 出力は次の画像のようになります。

ログイン