Laravelフレームワークフォーム検証の詳しい説明、laravelフレームワークform_PHPチュートリアル
Laravelフレームワークフォーム検証、laravelフレームワークフォームの詳細説明
基本的な検証例
$validator = バリデータ::make(
array('name' => 'デイル'),
array('name' => 'required|min:5')
);
make 関数に渡される最初のパラメーターは検証されるデータであり、2 番目のパラメーターはデータに適用する必要がある検証ルールです。
複数の検証ルールは、「|」文字で区切るか、配列の個別の要素として区切ることができます。
配列を介して検証ルールを指定します
$validator = バリデータ::make(
array('name' => 'デイル'),
array('name' => array('required', 'min:5'))
);
Validator インスタンスが作成されたら、失敗 (または合格) 関数を使用してこの検証を実行できます。
if ($validator->fails())
{
// 指定されたデータは検証に合格しませんでした
}
検証が失敗した場合は、バリデーターからエラー メッセージを受け取ることができます。
$messages = $validator->messages();
また、failed 関数を使用して、エラー メッセージなしで検証に失敗したルールの配列を取得することもできます。
$failed = $validator->failed();
書類確認
Validator クラスは、サイズ、MIME など、ファイルを検証するためのいくつかの検証ルールを提供します。ファイルを検証するときは、他の検証と同様に、ファイルをバリデーターに渡すことができます。
エラーメッセージが表示されます
Validator インスタンスでメッセージ関数を呼び出すと、エラー メッセージを処理するための便利な関数が多数ある MessageBag インスタンスを取得します。
ドメインの最初のエラーメッセージを取得する
echo $messages->first('email');
ドメインのすべてのエラーメッセージを取得する
foreach ($messages->get('email') as $message)
{
//
}
すべてのドメインのすべてのエラーメッセージを取得する
foreach ($messages->all() as $message)
{
//
}
ドメインにメッセージが存在するかどうかを確認する
if ($messages->has('email'))
{
//
}
何らかの形式でエラーメッセージを取得します
echo $messages->first('email', '
:message
');注: デフォルトでは、メッセージはブートストラップ互換の構文を使用してフォーマットされます。
すべてのエラーメッセージを特定の形式で取得します
foreach ($messages->all('
{
//
}
エラーメッセージとビュー
検証を実行したら、エラー メッセージをビューにフィードバックする簡単な方法が必要になります。これは Lavavel で簡単に処理できます。例として次のルートを考えてみましょう:
Route::get('register', function()
{
return View::make('user.register');
});
Route::post('register', function()
{
$rules = array(...);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails())
{
return Redirect::to('register')->withErrors($validator);
}
});
検証が失敗した場合は、withErrors 関数を使用して Validator インスタンスを Redirect に渡すことに注意してください。この関数は、セッションに保存されたエラー メッセージを更新して、次のリクエストで使用できるようにします。
ただし、GET ルート内のルートにエラー メッセージを明示的にバインドする必要はないことに注意してください。これは、Laravel が常にセッションのエラーをチェックし、エラーが利用可能な場合は自動的にビューにバインドするためです。したがって、すべてのリクエストについて、$errors 変数は常にすべてのビューで使用できるため、$errors が常に定義されており、安全に使用できると便利に想定できます。 $errors 変数は、MessageBag クラスのインスタンスになります。
したがって、ジャンプ後、ビューで自動バインドされた $errors 変数を使用できます。
first('email') ?>
利用可能な検証ルール
以下は、利用可能なすべての検証ルールとその機能のリストです。
承認されました
アクティブなURL
(日付)以降
アルファ
アルファダッシュ
英数字
(日付)前
間
確認しました
日付
日付形式
違う
電子メール
存在します (データベース)
画像(ファイル)
で 整数
IPアドレス
マックス
MIME タイプ
みん
入っていません
数値
正規表現
必須
必須の場合
必須
必須なし
同じ
サイズ
ユニーク (データベース)
受け付けました
このルールの値が yes、on、または 1 である必要があることを検証します。これは、利用規約への同意を確認する場合に役立ちます。
active_url
PHP 関数 checkdnsrr に従って、このルールの値が有効な URL である必要があることを確認します。
後:日付
このルールの値が、PHP 関数 strtotime を介して渡される、指定された日付以降である必要があることを検証します。
アルファ
このルールを検証する値は、完全に英字で構成されている必要があります。
アルファ_ダッシュ
このルールの値が完全に文字、数字、ダッシュ、または下線文字で構成されている必要があることを検証します。
alpha_num
このルールを検証する値は、完全に文字と数字で構成されている必要があります。
前:日付
このルールの値が指定された日付より前である必要があることを検証します。この日付は、PHP 関数 strtotime を通じて渡されます。
間:最小、最大
このルールの値が指定された最小値と最大値の間にある必要があることを検証します。文字列、数値、ファイルはサイズ ルールを使用して比較されます。
確認しました
この検証ルールの値は、foo_confirmation の値と同じである必要があります。たとえば、このルールで検証する必要があるフィールドがパスワードの場合、入力に同じパスワード確認フィールドが存在する必要があります。
日付
PHP 関数 strtotime に従って、このルールの値が有効な日付である必要があることを検証します。
日付形式:形式
PHP 関数 date_parse_from_format に従って、このルールの値が指定された形式に準拠する必要があることを検証します。
異なる:フィールド
このルールの値が指定されたフィールドの値と異なる必要があることを検証します。
メール
このルールの値が有効な電子メール アドレスである必要があることを検証します。
存在:テーブル、カラム
このルールの値が指定されたデータベース テーブルに存在する必要があることを検証します。
Exists ルールの基本的な使い方
列名を指定します
'州' => '存在:州、略語'
さらに条件を指定することもでき、条件は「where」の形式でクエリに追加されます。
'email' => 'exists:staff,email,account_id,1'
画像
このルールを検証する値は画像 (jpeg、png、bmp、または gif) である必要があります。
in:foo,bar,...
このルールの値が指定されたリストに存在する必要があることを確認してください。
整数
このルールの値が整数である必要があることを検証します。
このルールの値が有効な IP アドレスである必要があることを確認してください。
最大:値
このルールの値が最大値未満でなければならないことを検証します。文字列、数値、ファイルはサイズ ルールを使用して比較されます。
マイム:フー、バー、...
このルールを検証するファイルの MIME タイプは、指定されたリストに含まれている必要があります。
MIMEルールの基本的な使い方
'写真' => 'mimes:jpeg,bmp,png'
分:値
このルールを検証する値は、最小値より大きくなければなりません。文字列、数値、ファイルはサイズ ルールを使用して比較されます。
not_in:foo、bar、...
このルールの値が指定されたリストに存在してはいけないことを検証します。
数値
このルールを検証する値は数値である必要があります。
正規表現:パターン
このルールの値が指定された正規表現と一致する必要があることを検証します。
注: 正規表現モードを使用する場合、特に正規表現にパイプ文字が含まれている場合は、パイプ区切り文字の代わりに配列を使用してルールを指定する必要があります。
必須
このルールの値が入力データに存在する必要があることを検証します。
required_if:フィールド、値
指定されたフィールドが特定の値である場合、このルールの値が存在する必要があります。
required_with:foo、bar、...
指定されたドメインが存在する場合にのみ、このルールの値が存在する必要があることを検証します。
必須_なし:foo、bar、...
指定されたドメインが存在しない場合にのみ、このルールの値が存在する必要があることを確認してください。
同じ:フィールド
このルールの値が指定されたドメインの値と同じである必要があることを検証します。
サイズ:値
このルールの値が指定された値と同じサイズでなければならないことを検証します。文字列の場合、値は文字数を表します。数値の場合、値は整数値を表します。ファイルの場合、値はファイルのサイズを KB 単位で表します。
一意:テーブル、列、例外、idColumn
このルールの値が指定されたデータベース テーブル内で一意である必要があることを確認してください。列が指定されていない場合は、フィールドの名前が使用されます。
ユニークルールの基本的な使い方
'メール' => 'ユニーク:ユーザー'
列名を指定します
'email' => 'unique:users,email_address'
指定された ID を強制的に無視します
'電子メール' => '固有:ユーザー、電子メールアドレス、10'
URL
このルールの値が有効な URL である必要があることを確認してください。
カスタマイズされたエラーメッセージ
必要に応じて、デフォルトのエラーメッセージの代わりにカスタマイズしたエラーメッセージを使用できます。エラー メッセージをカスタマイズするにはいくつかの方法があります。
カスタムメッセージをバリデーターに渡す
$messages = 配列(
'required' => ':attribute フィールドは必須です。',
);
$validator = Validator::make($input, $rules, $messages);
注: :attribute プレースホルダーは、検証対象のドメインの実際の名前に置き換えられます。エラー メッセージでは他のプレースホルダーを使用することもできます。
その他の検証プレースホルダー
$messages = array(
'same' => ':attribute と :other は一致する必要があります。',
'size' => ':attribute は正確に :size である必要があります。',
'between' => ':attribute は :min - :max の間にある必要があります。',
'in' => ':attribute は次のタイプのいずれかである必要があります:
:値',
);
場合によっては、特定のドメインに対してのみカスタマイズされたエラー メッセージを指定したい場合があります:
指定したドメインのカスタマイズされたエラー メッセージを指定する
$messages = 配列(
'email.required' => 'あなたの電子メール アドレスを知る必要があります!',
);
場合によっては、エラー メッセージをバリデーターに直接渡すのではなく、言語ファイルで指定したい場合があります。これを実現するには、カスタム メッセージを app/lang/xx/validation.php ファイルのカスタム配列に追加します。
言語ファイルでエラーメッセージを指定
'カスタム' => 配列(
'メール' => 配列(
'必須' => 'あなたの電子メールアドレスを知る必要があります!',
)、
)、
カスタマイズされた検証ルール
Laravel にはさまざまな便利な検証ルールが用意されていますが、独自の検証ルールを追加することもできます。 1 つの方法は、Validator::extend 関数を使用してカスタム検証ルールを登録することです:
カスタマイズされた検証ルールを登録する
Validator::extend('foo', function($attribute, $value, $parameters)
{
return $value == 'foo';
});
注: extend 関数に渡されるルールの名前は、「スネークケース」命名規則に準拠する必要があります。
カスタマイズされたバリデーターは、検証される属性の名前、検証される属性の値、およびこのルールに渡されるパラメーターの 3 つのパラメーターを受け入れます。
クロージャを使用する代わりにクラス関数をextend関数に渡すこともできます:
Validator::extend('foo', 'FooValidator@validate');
カスタム ルールのエラー メッセージを定義する必要があることに注意してください。カスタム メッセージのインライン配列を使用することも、検証言語ファイルにカスタム メッセージを追加することもできます。
クロージャコールバックでバリデータを拡張する代わりに、バリデータクラス自体を拡張することもできます。これを実現するには、IlluminateValidationValidator を継承するバリデーター クラスを追加します。クラスに validate で始まる検証関数を追加できます:
拡張バリデータークラス
class CustomValidator extends IlluminateValidationValidator {
パブリック関数 validateFoo($attribute, $value, $parameters)
{
return $value == 'foo';
}
}
以下では、カスタムバリデーター拡張機能を登録する必要があります:
カスタムバリデータ拡張機能を登録する必要があります
Validator::resolver(function($translator, $data, $rules, $messages)
{
return new CustomValidator($translator, $data, $rules, $messages);
});
カスタム検証ルールを作成するとき、エラー メッセージのカスタム プレースホルダーを定義する必要がある場合があります。これを実現するには、上記のようなカスタム バリデーターを作成し、そのバリデーターに replaceXXX 関数を追加します。
{
return str_replace(':foo', $parameters[0], $message);
}
例:

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Laravelの電子メールの送信が失敗したときに戻りコードを取得する方法。 Laravelを使用してアプリケーションを開発する場合、検証コードを送信する必要がある状況に遭遇することがよくあります。そして実際には...

LaravelスケジュールタスクRAN RANSPONSIVEトラブルシューティングRALAVELのスケジュールタスクスケジューリングを使用すると、多くの開発者がこの問題に遭遇します。スケジュール:実行...

Laravelの電子メールの検証コードの送信の障害を処理する方法は、Laravelを使用することです...

DCATを使用するときにDCATADMIN(Laravel-Admin)にデータを追加するためにカスタムクリックのテーブル関数を実装する方法...

Laravel FrameworkでRedis接続の共有の影響とLaravelフレームワークとRedisを使用する際のメソッドを選択すると、開発者は問題に遭遇する可能性があります。

Laravel Multi-Tenant拡張機能パッケージStancl/Tenancyのカスタムテナントデータベース接続Laravel Multi-Tenant ExtensionパッケージStancl/Tenancyを使用したマルチテナントアプリケーションを構築する際の...

LaravelEloquentモデルの検索:データベースデータを簡単に取得するEloquentormは、データベースを操作するための簡潔で理解しやすい方法を提供します。この記事では、さまざまな雄弁なモデル検索手法を詳細に紹介して、データベースからのデータを効率的に取得するのに役立ちます。 1.すべてのレコードを取得します。 ALL()メソッドを使用して、データベーステーブルですべてのレコードを取得します:useapp \ models \ post; $ post = post :: all();これにより、コレクションが返されます。 Foreach Loopまたはその他の収集方法を使用してデータにアクセスできます。

700万のレコードを効率的に処理し、地理空間技術を使用したインタラクティブマップを作成します。この記事では、LaravelとMySQLを使用して700万を超えるレコードを効率的に処理し、それらをインタラクティブなマップの視覚化に変換する方法について説明します。最初の課題プロジェクトの要件:MySQLデータベースに700万のレコードを使用して貴重な洞察を抽出します。多くの人は最初に言語をプログラミングすることを検討しますが、データベース自体を無視します。ニーズを満たすことができますか?データ移行または構造調整は必要ですか? MySQLはこのような大きなデータ負荷に耐えることができますか?予備分析:キーフィルターとプロパティを特定する必要があります。分析後、ソリューションに関連している属性はわずかであることがわかりました。フィルターの実現可能性を確認し、検索を最適化するためにいくつかの制限を設定しました。都市に基づくマップ検索
