このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 次のリビジョン 両方とも次のリビジョン | ||
apricot:app:validation [2020/05/14 23:25] y2sunlight [HTMLテンプレート] |
apricot:app:validation [2020/05/22 20:43] y2sunlight [クラスエイリアス] |
||
---|---|---|---|
行 1: | 行 1: | ||
- | > 編集中 | ||
- | |||
- | ----- | ||
- | |||
====== Apricot バリデーション ====== | ====== Apricot バリデーション ====== | ||
--- // | --- // | ||
行 21: | 行 17: | ||
* Apricot バリデーション | * Apricot バリデーション | ||
* [[apricot: | * [[apricot: | ||
- | * [[apricot: | + | * [[apricot: |
ユーザ登録画面にバリデーションの機能を追加します。 | ユーザ登録画面にバリデーションの機能を追加します。 | ||
行 28: | 行 24: | ||
===== バリデーター ===== | ===== バリデーター ===== | ||
- | Apricotでは [[basic-library: | + | Apricotでは [[basic-library: |
==== 言語ファイル ==== | ==== 言語ファイル ==== | ||
行 193: | 行 189: | ||
\\ | \\ | ||
- | ===== ValidatorErrorBagクラス ===== | + | ===== エラーバッグ |
- | コアの [[apricot: | + | ==== ValidatorErrorBagクラス ==== |
+ | |||
+ | コアの [[apricot: | ||
{{fa> | {{fa> | ||
行 226: | 行 224: | ||
* ''' | * ''' | ||
* 使用できるメソッドなど、機能的にはErrorBagクラスと全く同じです。 | * 使用できるメソッドなど、機能的にはErrorBagクラスと全く同じです。 | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ==== クラスエイリアス ==== | ||
+ | |||
+ | ValidatorErrorBagクラスを[[apricot: | ||
+ | |||
+ | {{fa> | ||
+ | <code php aliases.setup.php> | ||
+ | <?php | ||
+ | // | ||
+ | // ビューテンプレートで使うクラスエイリアスを登録 | ||
+ | // | ||
+ | return function(): | ||
+ | { | ||
+ | $aliases = | ||
+ | [ | ||
+ | /* Core */ | ||
+ | ... | ||
+ | |||
+ | /* App */ | ||
+ | ' | ||
+ | ' | ||
+ | ]; | ||
+ | |||
+ | ... | ||
+ | |||
+ | return true; // Must return true on success | ||
+ | }; | ||
+ | </ | ||
+ | |||
+ | * ViewHelper の下に ValidatorErrorBag のエイリアスを追加します。 | ||
\\ | \\ | ||
行 346: | 行 376: | ||
* withInputs()で入力変数をフラッシュ変数に保存します | * withInputs()で入力変数をフラッシュ変数に保存します | ||
* withErrors()でバリデーションのエラーバッグをフラッシュ変数に保存します | * withErrors()でバリデーションのエラーバッグをフラッシュ変数に保存します | ||
- | * redirect()ヘルパー関数を使って入力画面のレンダリングを返します | + | * redirect()で前画面にリダイレクトするResponseオブジェクトをします |
* 検証成功の時 | * 検証成功の時 | ||
* 不要になったバリデーション用のフォームデータを削除します | * 不要になったバリデーション用のフォームデータを削除します | ||
行 536: | 行 566: | ||
バリデーションを使ってみましょう。ユーザ一覧画面を表示します。 | バリデーションを使ってみましょう。ユーザ一覧画面を表示します。 | ||
- | [{{apricot: | + | [{{apricot: |
■ [新規]ボタンを押して下さい。 | ■ [新規]ボタンを押して下さい。 | ||
- | [{{apricot: | + | [{{apricot: |
- | ■ [保存]ボタンを押すとバリデーションが働き以下の画面が出ます。\\ | + | ■ 全て未入力の状態で、[保存]ボタンを押すとバリデーションが働き以下の画面が出ます。\\ |
- | [{{apricot: | + | [{{apricot: |
- | ■ \\ | + | ■ アカウントとパスワードの必須入力エラーエラーメッセージが表示されます。 |
- | ■ \\ | + | |
- | ■ \\ | + | |
- | ==== 様々なバリデーション | + | === 様々なバリデーション === |
- | 上例の他にユーザ新規登録画面では以下のバリデーション機能があります。 | + | ユーザ新規登録画面では以下の様々なバリデーション機能があります。試してみて下さい。 |
- | ■ \\ | + | * required — 必須入力(account, |
- | ■ \\ | + | * alphaNum — 半角英数入力(account) |
+ | * unique — ユニーク制約(account) | ||
+ | * ascii — 半角入力(password) | ||
+ | * equals — 確認入力(password = password_confirmation) | ||
+ | * email — メールアドレス(email) | ||
\\ | \\ | ||