Laravel-validation
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 *-実行が成功すると、次の出力が表示されます-
- ステップ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 *-テキストフィールドに何も入力せずに「ログイン」*ボタンをクリックします。 出力は次の画像のようになります。