Laravel-検証
検証は、アプリケーションを設計する際の最も重要な側面です。着信データを検証します。デフォルトでは、基本コントローラークラスはValidatesRequests さまざまな強力な検証ルールを使用して着信HTTP要求を検証するための便利な方法を提供するトレイト。
Laravelで利用可能な検証ルール
Laravelは常にセッションデータのエラーをチェックし、利用可能な場合は自動的にビューにバインドします。したがって、次のことに注意することが重要です。$errors 変数は、すべてのリクエストですべてのビューで常に使用可能であるため、 $errors変数は常に定義されており、安全に使用できます。次の表は、Laravelで利用可能なすべての検証ルールを示しています。
Laravelで利用可能な検証ルール | ||
---|---|---|
承認済み | アクティブなURL | 後(日付) |
アルファ | アルファダッシュ | 英数字 |
アレイ | 前(日付) | の間に |
ブール値 | 確認済み | 日付 |
日付形式 | 異なる | 数字 |
間の桁 | Eメール | 存在する(データベース) |
画像ファイル) | に | 整数 |
IPアドレス | JSON | マックス |
MIMEタイプ(ファイル) | 最小 | ありませんで |
数値 | 正規表現 | 必須 |
必須の場合 | 必須でない限り | で必要 |
すべてで必要 | なしで必要 | すべてなしで必要 |
同じ | サイズ | ストリング |
タイムゾーン | ユニーク(データベース) | 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
例
Step 1 −というコントローラーを作成します ValidationController 次のコマンドを実行します。
php artisan make:controller ValidationController --plain
Step 2 −正常に実行されると、次の出力が表示されます−
Step 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'
]);
}
}
Step 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>
Step 5 −次の行をに追加します app/Http/routes.php。
app/Http/routes.php
Route::get('/validation','ValidationController@showform');
Route::post('/validation','ValidationController@validateform');
Step 6 −次のURLにアクセスして、検証をテストします。
http://localhost:8000/validation
Step 7 −をクリックします “Login”テキストフィールドに何も入力せずにボタンを押します。出力は次の図のようになります。