このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
|
apricot:app:validation [2020/05/15 09:12] y2sunlight [バリデーター] |
apricot:app:validation [2020/06/03 14:37] (現在) tanaka [HTMLテンプレート] |
||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | > 編集中 | ||
| - | |||
| - | ----- | ||
| - | |||
| ====== Apricot バリデーション ====== | ====== Apricot バリデーション ====== | ||
| --- // | --- // | ||
| 行 21: | 行 17: | ||
| * Apricot バリデーション | * Apricot バリデーション | ||
| * [[apricot: | * [[apricot: | ||
| - | * [[apricot: | + | * [[apricot: |
| ユーザ登録画面にバリデーションの機能を追加します。 | ユーザ登録画面にバリデーションの機能を追加します。 | ||
| 行 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 のエイリアスを追加します。 | ||
| \\ | \\ | ||
| 行 233: | 行 263: | ||
| Apricotではバリデーションをインターセプターの中に実装します。以下にインターセプターの作成方法について説明します。 | Apricotではバリデーションをインターセプターの中に実装します。以下にインターセプターの作成方法について説明します。 | ||
| - | >'' | + | >'' |
| \\ | \\ | ||
| 行 346: | 行 376: | ||
| * withInputs()で入力変数をフラッシュ変数に保存します | * withInputs()で入力変数をフラッシュ変数に保存します | ||
| * withErrors()でバリデーションのエラーバッグをフラッシュ変数に保存します | * withErrors()でバリデーションのエラーバッグをフラッシュ変数に保存します | ||
| - | * redirect()ヘルパー関数を使って入力画面のレンダリングを返します | + | * redirect()で前画面にリダイレクトするResponseオブジェクトをします |
| * 検証成功の時 | * 検証成功の時 | ||
| * 不要になったバリデーション用のフォームデータを削除します | * 不要になったバリデーション用のフォームデータを削除します | ||
| 行 503: | 行 533: | ||
| {{fa> | {{fa> | ||
| - | <code php create.blade.php> | + | <code php edit.blade.php> |
| .... | .... | ||
| 行 536: | 行 566: | ||
| バリデーションを使ってみましょう。ユーザ一覧画面を表示します。 | バリデーションを使ってみましょう。ユーザ一覧画面を表示します。 | ||
| - | [{{apricot: | + | [{{apricot: |
| ■ [新規]ボタンを押して下さい。 | ■ [新規]ボタンを押して下さい。 | ||
| - | [{{apricot: | + | [{{apricot: |
| ■ 全て未入力の状態で、[保存]ボタンを押すとバリデーションが働き以下の画面が出ます。\\ | ■ 全て未入力の状態で、[保存]ボタンを押すとバリデーションが働き以下の画面が出ます。\\ | ||
| - | [{{apricot: | + | [{{apricot: |
| - | ■ \\ | + | ■ アカウントとパスワードの必須入力エラーエラーメッセージが表示されます。 |
| - | ■ \\ | + | |
| - | ■ \\ | + | |
| - | ==== 様々なバリデーション | + | === 様々なバリデーション === |
| - | 上例の他にユーザ新規登録画面では以下のバリデーション機能があります。 | + | ユーザ新規登録画面では以下の様々なバリデーション機能があります。試してみて下さい。 |
| - | ■ \\ | + | * required — 必須入力(account, |
| - | ■ \\ | + | * alphaNum — 半角英数入力(account) |
| + | * unique — ユニーク制約(account) | ||
| + | * ascii — 半角入力(password) | ||
| + | * equals — 確認入力(password = password_confirmation) | ||
| + | * email — メールアドレス(email) | ||
| \\ | \\ | ||