Ground Sunlight

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

ユーザ用ツール

サイト用ツール


apricot:app:validation

差分

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

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

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
apricot:app:validation [2020/05/14 23:18]
y2sunlight [初期設定ファイル]
apricot:app:validation [2020/06/03 14:37] (現在)
tanaka [HTMLテンプレート]
行 1: 行 1:
-> 編集中 
- 
------ 
- 
 ====== Apricot バリデーション ====== ====== Apricot バリデーション ======
  --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-05-14//  --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-05-14//
行 21: 行 17:
     * Apricot バリデーション     * Apricot バリデーション
     * [[apricot:app:transaction|Apricot トランザクション]]     * [[apricot:app:transaction|Apricot トランザクション]]
-  * [[apricot:ext:top|Apricot 拡張]]+  * [[apricot:ext:middleware|Apricot 拡張]]
  
 ユーザ登録画面にバリデーションの機能を追加します。 ユーザ登録画面にバリデーションの機能を追加します。
行 28: 行 24:
 ===== バリデーター ===== ===== バリデーター =====
  
-Apricotでは [[basic-library:valitron:1.4|Valitron]] を使いサーバ側のバリデーションを実装します。以下では、Valitron の設定方法について述べます。詳細は [[https://github.com/vlucas/valitron/blob/master/README.md|Valitron の README]] をご覧下さい。+Apricotでは [[basic-library:valitron:1.4|Valitron]] を使いサーバ側のバリデーションで使用します。以下では、Valitron の設定方法について述べます。詳細は [[https://github.com/vlucas/valitron/blob/master/README.md|Valitron の README]] をご覧下さい。
  
 ==== 言語ファイル ==== ==== 言語ファイル ====
行 193: 行 189:
 \\ \\
  
-===== ValidatorErrorBagクス =====+===== ーバッグ =====
  
-コアの [[apricot:core:basic-class#ーバッグ|ErrorBagクラス]] を継承してバリデーション用のエラーバッグ( ValidatorErrorBag )を作ります。+==== ValidatorErrorBagクラス ==== 
 + 
 +コアの [[apricot:core:basic-class#ErrorBagク|ErrorBagクラス]] を継承してバリデーション用のエラーバッグ( ValidatorErrorBag )を作ります。
  
 {{fa>folder-open-o}} ** /apricot/app/Foundation ** {{fa>folder-open-o}} ** /apricot/app/Foundation **
行 226: 行 224:
   * '''validator''' と言う名前でエラーバッグを生成します。   * '''validator''' と言う名前でエラーバッグを生成します。
   * 使用できるメソッドなど、機能的にはErrorBagクラスと全く同じです。   * 使用できるメソッドなど、機能的にはErrorBagクラスと全く同じです。
 +
 +\\
 +
 +==== クラスエイリアス ====
 +
 +ValidatorErrorBagクラスを[[apricot:app:top#クラスエイリアス|クラスエイリアス]]に追加します。
 +
 +{{fa>folder-open-o}} ** /apricot/config/setup **
 +<code php aliases.setup.php>
 +<?php
 +//-------------------------------------------------------------------
 +// ビューテンプレートで使うクラスエイリアスを登録
 +//-------------------------------------------------------------------
 +return function():bool
 +{
 +    $aliases =
 +    [
 +        /* Core */
 +        ...
 +
 +        /* App */
 +        'ViewHelper' => \App\Helpers\ViewHelper::class,
 +        'ValidatorErrorBag' => \App\Foundation\ValidatorErrorBag::class,
 +    ];
 +
 +    ...
 +
 +    return true; // Must return true on success
 +};
 +</code>
 +
 +  * ViewHelper の下に ValidatorErrorBag のエイリアスを追加します。
  
 \\ \\
行 233: 行 263:
 Apricotではバリデーションをインターセプターの中に実装します。以下にインターセプターの作成方法について説明します。 Apricotではバリデーションをインターセプターの中に実装します。以下にインターセプターの作成方法について説明します。
  
->''インターセプター'' とはアクションの前処理の事で、ミドルウェアに似ていますが後処理はなく、各コントローラで独自に設定することができます。主な用途としては入力データの検証や変換です。本章では、インターセプターを直接アクションから呼び出していますが、後述の「Apricot 拡張: [[apricot:ext:interceptor|インターセプター]]では、アクションをインターセプターに依存しない形で実装します。+>''インターセプター'' とはアクションの前処理の事で、ミドルウェアに似ていますが後処理はなく、各コントローラで独自に設定することができます。主な用途としては入力データの検証や変換です。本章では、インターセプターを直接アクションから呼び出していますが、後述の「Apricot 拡張: [[apricot:ext:interceptor|インターセプター]]では、アクションをインターセプターに依存しない形で実装します。
  
 \\ \\
行 346: 行 376:
       * withInputs()で入力変数をフラッシュ変数に保存します       * withInputs()で入力変数をフラッシュ変数に保存します
       * withErrors()でバリデーションのエラーバッグをフラッシュ変数に保存します       * withErrors()でバリデーションのエラーバッグをフラッシュ変数に保存します
-      * redirect()ヘルパー関数を使って入力画面ンダリングします+      * redirect()で前画面にリダイクトするResponseオブジェクトをします
     * 検証成功の時     * 検証成功の時
       * 不要になったバリデーション用のフォームデータを削除します       * 不要になったバリデーション用のフォームデータを削除します
行 495: 行 525:
 </code> </code>
  
-  * 記号なリスト +  *'' <nowiki>{{-- password --}}</nowiki>'' の部分を差替えます 
-  * 記号なリスト+    * input-typeをpasswordに変更 
 +  * ''<nowiki>{{-- password_confirmation --}}</nowiki>'' の部分を追加ます 
 +    * 確認入力用に追加
  
 === 編集用のテンプレート === === 編集用のテンプレート ===
  
 {{fa>folder-open-o}} ** /apricot/assets/views/user ** {{fa>folder-open-o}} ** /apricot/assets/views/user **
-<code php create.blade.php>+<code php edit.blade.php>
         ....         ....
  
行 524: 行 556:
 </code> </code>
  
-  * 記号なリスト +  *'' <nowiki>{{-- password --}}</nowiki>'' の部分を差替えます 
-  * 記号なリスト +    * input-typeをpasswordに変更 
 +  * ''<nowiki>{{-- password_confirmation --}}</nowiki>'' の部分を追加ます 
 +    * 確認入力用に追加
 \\ \\
  
行 533: 行 566:
 バリデーションを使ってみましょう。ユーザ一覧画面を表示します。 バリデーションを使ってみましょう。ユーザ一覧画面を表示します。
  
-[{{apricot:app:app05.png?nolink}}]+[{{apricot:app:app08.png?nolink}}]
 ■ [新規]ボタンを押して下さい。  ■ [新規]ボタンを押して下さい。 
  
-[{{apricot:app:app06.png?nolink}}] +[{{apricot:app:app09.png?nolink}}] 
-■ [保存]ボタンを押すとバリデーションが働き以下の画面が出ます。\\ +■ 全て未入力の状態で、[保存]ボタンを押すとバリデーションが働き以下の画面が出ます。\\ 
  
-[{{apricot:app:app06.png?nolink}}] +[{{apricot:app:app10.png?nolink}}] 
-■ \\  +■ アカウントとパスワードの必須入力エラーエラーメッセージが表示されます。
-■ \\  +
-■ \\ +
  
-==== 様々なバリデーション ====+=== 様々なバリデーション ===
  
-上例の他にユーザ新規登録画面では以下のバリデーション機能があります。+ユーザ新規登録画面では以下の様々なバリデーション機能があります。試してみて下さい
  
-■ \\  +  * required — 必須入力(account, password) 
-■ \\ +  * alphaNum — 半角英数入力(account) 
 +  * unique — ユニーク制約(account) 
 +  * ascii — 半角入力(password) 
 +  * equals — 確認入力(password = password_confirmation) 
 +  * email — メールアドレス(email)
  
 \\ \\
  
apricot/app/validation.1589465902.txt.gz · 最終更新: 2020/05/14 23:18 by y2sunlight