エス技研

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


CakePHP3のCakeDC/Usersのバリデーションのカスタマイズ方法解説

   

CakeDC/Usersのバリデーションのカスタマイズ方法解説

 
CakePHP3のユーザ管理・認証プラグイン CakeDC/Usersの導入・機能解説・3.1.5対応」の記事で、CakePHP3で CakeDC/Usersを使ってログイン認証機能を実装する手順を解説しました。
また、「CakePHP3のCakeDC/Usersの画面、メール本文テンプレートのカスタマイズ方法解説」の記事で、HTMLのテンプレートを変更する解説をしました。
 
今回の記事では、その時に解説できなかった、入力画面でのバリデーションのカスタマイズ方法について解説します。
 
 

CakeDC/Usersのバリデーションが記載されているファイル

 
CakeDC/Usersのバリデーションが記載されているファイルは、以下のファイルになります。
 /vendor/cakedc/users/src/Model/Table/UsersTable.php
 
このファイルに記述されているバリデーションの内容を変更することで、バリデーションのカスタマイズを行うことは可能です。

ですが、一般的にはこのファイルはプラグイン「CakeDC/Users」のコアファイルになりますので、このファイルを直接更新することはせず、オーバーライドする処理を構築します。
 
 


 

CakeDC/Usersのバリデーションをオーバーライドでカスタマイズする

 

1.bootstrap.phpの編集

 
下記のファイルに編集を行います。
 /config/bootstrap.php
 
下記の、configファイルとして「/config/users.php」も利用する処理を記述します。

 
すでに Usersプラグインのロード処理を記述している場合は、1行目のみ追記します。
 
これは、「CakePHP3のCakeDC/Usersのログイン後のリダイレクトを設定解説」の記事で、リダイレクトの処理の設定をする際にも記述しますので、リダイレクトなどほかの設定ですでに記述している場合もあるかと思います。
 
 

2.users.phpの編集

 
下記のファイルに編集を行います。該当のファイルがない場合は、新規作成をします。
/config/users.php
 
下記の値を編集します。

 
 
標準設定は、「/vendor/cakedc/users/config/users.php」に下記の様に記載されています。

 
「/config/users.php」は、「CakePHP3のCakeDC/UsersのUserHelperでログアウトやreCAPTCHAをカスタマイズ」で解説をした reCAPTCHAでも利用しますので、すでに設定がある場合もあるでしょう。
 
 

3.Model/Entity/User.phpの編集

 
下記のファイルに編集を行います。該当のファイルがない場合は、新規作成をします。
/src/Model/Entity/User.php
 
下記の処理を編集します。

 
この内容は、プラグインの Entity「/vendor/cakedc/users/src/Model/Entity/User.php」の内容を流用しています。
 
 

4.Model/Table/UsersTable.phpの編集

 
下記のファイルに編集を行います。該当のファイルがない場合は、新規作成をします。
/src/Model/Table/UsersTable.php
 
そして、ようやく、バリデーションの処理を記載します。

 
18行目以降の「validationDefault()」の内容は、下記のプラグインの標準設定の内容をコピペしてからカスタマイズしています。
 /vendor/cakedc/users/src/Model/Table/UsersTable.php
 
上記の例では、33行目の処理で、「first_name」を必須項目にする、という処理に変更してみています。
 
 
これで、プラグインのファイルを触らずに、バリデーションをカスタマイズすることができるようになります。
 
 

CakePHP3のCakeDC/Usersの関連記事

 
CakePHP3の CakeDC/Usersを使うために、基本となるインストールの方法から入力画面のテンプレートのカスタマイズや、リダイレクトの設定など、CakeDC/Usersに関する記事を下記に書いています。
あわせて参考にしてみてください。
 
CakePHP3のユーザ管理・認証プラグイン CakeDC/Usersの導入・機能解説・3.1.5対応
CakePHP3のCakeDC/Usersの画面、メール本文テンプレートのカスタマイズ方法解説
CakePHP3のCakeDC/Usersのログイン後のリダイレクトを設定解説
CakePHP3のCakeDC/UsersのUserHelperでログアウトやreCAPTCHAをカスタマイズ
Google reCAPTCHAのSite key、Secret keyの取得方法・20170408バージョン

 - CakePHP 2.x 3.x

GoogleAdwords

GoogleAdwords

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

Message

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

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

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

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

  関連記事

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

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

MySQL、CakePHP 2.3で「tinyint(1)」の Boolean型の動作を再確認

MySQL+CakePHPの環境で「tinyint(1)」を利用する際の動作を検証。「tinyint(1)」の Boolean型について CakePHPでは自動処理が実施されていることを確認しました。

CakePHP3のcontroller内でテンプレート、レイアウトを変更する際の指定方法

CakePHP3でテンプレートファイルやレイアウトファイルをデフォルトのものから別のものに変更したい場合の指定方法を解説。

CakePHP 2.3 コマンドラインからPHPのシェル実行の方法解説

CakePHP 2.3でコマンドラインから CakePHPで記述した処理を実行する方法を解説します。

CakePHP3でcomposerを利用してライブラリ・プラグインをインストールする方法

CakePHP3でcomposerを使ってパッケージ(ライブラリ、プラグイン)をインストールする方法の解説。PHPを使うのはCakePHP3が初めてというような方への使い方から解説。

CakePHP 2.3 Search Pluginで検索処理 その3入力エリア一つで複数の項目を同時に検索する方法

CakePHPの検索プラグイン Search Pluginの検索処理の中で入力エリア一つで複数の項目を同時に検索する方法を解説。

CakePHPを学ぶ際にはオブジェクト指向を学ぼう

CakePHPはオブジェクト指向で書かれていますので、CakePHPを学ぶにはオブジェクト指向も学びましょう。

CakePHP 2.3 テーブルの項目を演算した結果を条件として抽出する方法

アソシエーション(連携)している先のテーブルの項目で演算をする場合の考え方と注意点をサンプルソースを用いて説明しています。分かってしまえば簡単です。

CakePHP 2.3でファイルをアップロード・その2 ファイル名を乱数で設定

CakePHPのアップロードするファイル名を乱数で変更しセキュリティを高める方法を解説。

CakePHP3ログファイルの出力方法・$this->log()の解説
CakePHP3ログファイルの出力方法・$this->log()の解説

コントロール、モデルの変数の中身を見るときはログに出力する方法が有効です。$this->log()を利用すると変数だけじゃなく、連想配列、オブジェクトも簡単にログ出力ができます。