エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


CakePHP3で値を入力直後にバリデーションする方法解説

      2017/10/28

CakePHP3で入力された値を入力直後にバリデーションする処理

 
CakePHP3の入力チェックは、データベースに情報を保存する際にエラー処理を行っていますが、入力された値を何かしら加工をして、それから保存する場合など、あらかじめ入力チェックをしておきたい、と思う場面もあるでしょう。
 
そういう場合に、入力直後にバリデーション(入力チェック)を行う処理も用意されていますので、その処理について解説を行います。
 
 

CakePHP3で Bakeしたデフォルトの処理

 
CakePHP3で、リンクの情報を登録する「Links」というテーブルを作成し、Bakeして作成されたデフォルトの処理が下記になります。
 

 
 

CakePHP3で入力直後にバリデーションの処理を追加

 
前項の Bakeで作成されたデフォルトのプログラムに対して、6~10行目、20行目を追加することで、入力の値を受け取った直後にバリデーション処理を実施することができます。
 

 
「newEntity()」で取得する入力値のオブジェクトに対して、受け取った直後にバリデーション(入力チェック)を行う処理を追加しています。
 
 


 

CakePHP3でのバリデーション処理の詳細解説

 
細かく説明しますと、6行目の「newEntity()」の処理で、リクエストデータを設定します。
 

 
 
7行目の「$link_check->errors()」で、バリデーション処理で発生したエラーの情報を取得し、エラーがある場合は、エラー処理を行います。
 

 
これにより、入力エラーがある場合は、入力画面に戻り、画面上部にエラーメッセージを表示することができるようになります。
 
 

Tableファイルにバリデーションルールを追加

 
バリデーションのルールの詳細はまた改めて記事を書く予定ですが、バリデーションのルールを追加する場合は、Tableファイルにバリデーションルールを追加します。
下記の例では 8行目に追加しています。
この場合の「not-url」は、バリデーションのルールの名称ですので、他のルール名称とかぶっていなければ、「aaa」「bbb」などでも問題ありません。
 
※LinksTable.php

 
 

バリデーションで出力されるエラー

 
最後に、「$link_check->errors()」で取得できるエラーについてです。
取得できるエラーは以下のような形となっています。
 
エラーの出力される際にどのエラー処理なのか、その出力される項目名が、前項で解説をしたバリデーションのルールの名称となります。
 

 
 
詳細については、CakePHP3のマニュアルを参照してください。
https://book.cakephp.org/3.0/ja/core-libraries/validation.html#id13
 
 

CakePHP3の関連記事

CakePHP3にWYSIWYGエディタのCKEditor4を設置、カスタマイズ方法を解説
CakePHP3でページごとに読み込むJavaScript、CSSを変える処理の解説
CakePHP3にデイトピッカー jQuery UI DatePickerを実装する手順の解説
CakePHP3の更新画面でUpload Plugin 3.0を使う方法、viewで使う方法解説・その3
CakePHP3のUpload Plugin 3.0をバリデーションなど実運用向けのカスタマイズ方法解説・その2
CakePHP3の画像、ファイルアップロードプラグインUpload Plugin 3.0の設置解説・その1
CakePHP3でユーザ定義の定数、変数を設定し、読み込む方法解説
CakePHP3のバージョンを指定してインストールする詳細な手順を解説
CakePHP3のタイムゾーンを協定世界時UTCから日本標準時間JSTにずれを変更する方法
CakePHP3チュートリアルで日付と時刻のDateTimeでエラーが出たときの対処方法
 
その他の「CakePHP3」に関する記事一覧
 
 

 - CakePHP 2.x 3.x

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

CakePHP3にWYSIWYGエディタのCKEditor4を設置、カスタマイズ方法を解説
CakePHP3にWYSIWYGエディタのCKEditor4を設置、カスタマイズ方法を解説

WYSIWYGエディタであるCKEditor4をCDNを利用して簡単にCakePHP3に導入する方法とカスタマイズする方法を解説。CakePHP3にはページごとの振り分けを行うブロック化を利用する。

CakePHP3でDocumentRootやwebroot、imgフォルダのURLやドメイン、パスを取得
CakePHP3でDocumentRootやwebroot、imgフォルダのURLやドメイン、パスを取得

URLやドメイン、フォルダへのパスの取得は、ビューではUrlHelperを使い、コントローラーではRouterクラスを使います。第2引数の指定でURLを取得することも可能。

CakePHP3のCakeDC/Usersのログイン後のリダイレクトを設定解説
CakePHP3のCakeDC/Usersのログイン後のリダイレクトを設定解説

CakeDC謹製Usersプラグインの紹介。ログイン認証後にリダイレクトする先の設定方法についての解説と実運用するために必要なコツを解説。便利な仕組みも仕様の理解があって初めてうまく使いこなせる。

CakePHP2の検索Plugin CakeDC/Searchで重複を省くgroup by(distinct)の実装方法
CakePHP2の検索Plugin CakeDC/Searchで重複を省くgroup by(distinct)の実装方法

CakePHP2の検索プラグイン「CakeDC/Search」で、重複レコードを省くgroup by、distinctを使う方法についての解説。設定する場所はpaginatorの条件とするので、find()関数と同じ。

CakePHP3の更新画面でUpload Plugin 3.0を使う方法、viewで使う方法解説・その3
CakePHP3の更新画面でUpload Plugin 3.0を使う方法、viewで使う方法解説・その3

CakePHP3でファイル、画像をアップロードするプラグイン、upload plugin 3を導入する手順を解説した記事。3部作のその3で記事を更新する際のファイルの取り回しなどについてを解説。

CakePHP 2.3 デバッグキット(DebugKit)超初心者向けフォロー講座

CakePHP初心者に向けてデバッグキット(DebugKit)のインストール方法、はまりポイントを解説。

CakePHP3で画像・ファイルのアップロード処理を自作・解説付き・その2
CakePHP3で画像・ファイルのアップロード処理を自作・解説付き・その2

ファイルのアップロード機能の自作サンプルコードとその解説のその2。アップロード機能に関連するファイルの更新や削除の処理や画像、フォルダのパスの指定方法などを含めて解説。

CakePHP 2.x系 Viewでのコメントの記述方法など

CakePHPにおいて View、ctpファイルでコメントを記述する方法を解説。

CakePHP 2.3で確認画面付きのお問い合わせフォームの作り方

CakePHPで確認画面付きのお問い合わせフォーム、メールフォームの作り方をサンプルを提示しながら解説。

CakePHP 2.3 Search Pluginで検索処理 その5入力項目に複数項目入力した場合の AND検索、OR検索

CakePHPの検索プラグイン Search Pluginの検索処理の中で複数項目を入力した場合の AND検索、OR検索についての解説です。