Ground Sunlight

Windowsで作る - PHPプログラミングの開発環境

ユーザ用ツール

サイト用ツール


apricot:usage:ja:validation

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
apricot:usage:ja:validation [2020/08/28 08:28]
y2sunlight [バリデーションの使用例]
apricot:usage:ja:validation [2020/09/03 13:46] (現在)
y2sunlight [Apricot バリデーション]
行 1: 行 1:
-> 編集中 
- 
----- 
- 
 ====== Apricot バリデーション ====== ====== Apricot バリデーション ======
  --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-08-25//  --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-08-25//
行 21: 行 17:
   * Apricot バリデーション   * Apricot バリデーション
   * [[apricot:usage:ja:provider|Apricot サービスプロバイダー]]   * [[apricot:usage:ja:provider|Apricot サービスプロバイダー]]
 +  * [[apricot:usage:ja:authentication|Apricot ユーザ認証]]
   * [[apricot:usage:ja:utility|Apricot ユーティリティ]]   * [[apricot:usage:ja:utility|Apricot ユーティリティ]]
  
行 196: 行 193:
  
 \\ \\
- 
- 
- 
-\\ 
- 
  
 ===== ValidatorErrorBagクラス ===== ===== ValidatorErrorBagクラス =====
行 274: 行 266:
 </code> </code>
  
-この例では、Input::all() で入力変数を取得した後に、''Validator'' のインスタンスを生成し、そのインスタンスの ''validate()'' メソッドを使ってバリデーションを実行してます。+この例では、Input::all() で入力変数を取得した後に、それを使って ''Validator'' のインスタンスを生成します。
  
-バリデーションが失敗した時、withInputs() で入力変数を、withErrors() で[[apricot:usage:ja:validation#validatorerrorbagクラス|バリデションエラーバッグ]]をフラッシュ変数に保存します。そして、redirect()で前画面にリダイレクトするレスポンスオブジェクトを生成し、それを返します。Apricotはインターセプターがレスポンスオブジェクトを返した時、コントローラーアクションを呼び出さずに、そのレスポンスをクライアントに返します。+=== バリデーション適用 ===
  
 +バリデーションルールの適用には、''rule()'' メソッドを使います。''rule()'' メソッドに渡す第1引数はルール名、第2引数は入力変数変数名、第3引数以降はオプションでルールによって異なります。この例では、以下のバリデーションルールを使用しています。
  
-==== バデーションルール ====+  * ''required'' --- 必須入力 
 +  * ''alphaNum'' --- 半角英数入力 
 +  * ''unique'' --- ユニーク制約 
 +  * ''ascii'' --- 半角入力 
 +  * ''equals'' --- 確認入力 
 +  * ''email'' --- メールアドレス 
 + 
 +この他の使用できるルールについては、Valitronの[[https://github.com/vlucas/valitron/blob/master/README.md|README]]の ''Built-in Validation Rules'' の項を参照して下さい。但し、''unique''ルールはApricotの[[#uniqueルール|カスタムルール]]です。 
 + 
 +=== 入力変数のラベリング === 
 + 
 +''labels()'' メソッドを使うと[[#エラーメッセージ]]で使用される入力変数にラベルを付けることができます。''labels()'' メソッドに渡す引数は、変数名とラベの連想配列です。この連想配列を作成するのに ''inputLabels()'' ボイラプレートを使用すると便利です。''inputLabels('messages.user.create')'' の引数には、言語メッセージのドット表記キーを指定します。以下はこの例で使用している言語ファイの内容です。 
 + 
 +{{fa>folder-open-o}} ** /your-project/asetts/lang/ja ** 
 +<code php messages.php> 
 +<?php 
 +return [ 
 +    'user'=>[ 
 +        'create'=>[ 
 +            'account'=>'アカウント', 
 +            'password'=>'パスワード', 
 +            'password_confirmation'=>'パスワード(確認)', 
 +            'email'=>'メールアドレス', 
 +        ], 
 +    ], 
 +]; 
 +</code>
  
-バリデションの手順の通りです+言語ファイル及び言語メッセジについて、[[apricot:usage:ja:frontend#多言語化]]を参照してさい
  
-  - Input::all()でフォームデータを取得します +=== バリデーションの実行 ===
-  - Validatorの生成 +
-    * rule()メソッドで検証ルールを適用します +
-    * labels()メソッドでエラーメッセージで使う項目名を設定します +
-  - Validatorのvalidate()メソッドで検証します +
-    * 検証エラーの時 +
-      * withInputs()で入力変数をフラッシュ変数に保存します +
-      * withErrors()でバリデーションのエラーバッグをフラッシュ変数に保存します +
-      * redirect()で前画面にリダイレクトするResponseオブジェクトをします +
-    * 検証成功の時 +
-      * 不要になったバリデーション用のフォームデータを削除します+
  
-=== 検証ルル ===+バリデションの実行には、''validate()'' メソッドを使用します。バリデーションが失敗した時、''errors()'' メソッドでバリデーションエラーを取得し、それを withErrors() を使って [[apricot:usage:ja:validation#validatorerrorbagクラス|エラーバッグ]]としてフラッシュ変数に保存します。そして、redirect()で前画面にリダイレクトするレスポンスオブジェクトを生成しそれを返します。
  
-  * **insert()** : レコード挿入時\\  
-    * ''required'' --- 必須入力(account, password) 
-    * ''alphaNum'' --- 半角英数入力(account) 
-    * ''unique'' --- ユニーク制約(account) 
-    * ''ascii'' --- 半角入力(password) 
-    * ''equals'' --- 確認入力(password = password_confirmation) 
-    * ''email'' --- メールアドレス(email) 
 \\ \\
  
apricot/usage/ja/validation.1598570902.txt.gz · 最終更新: 2020/08/28 08:28 by y2sunlight