CakePHP3

今までCakePHPのバージョン1から始まり、バージョン2と触ってきました。最近はバージョン3を触りつつあるのですが、CakePHP3のドキュメントがちょっとわかりにくいです。その中でもあらかじめ用意されているバリデーションルールは何を用意してくれているのかが、私だけかもしれませんが今一わかりません。

そこで、下記にCakePHP3のバリデーションルールをコアファイルから引っ張り出して一覧にしてみました。

また、CakePHP3には新たにルールチェッカーというものが用意されたので、これも明記しておきます。

バリデーションを調べたバージョンはCakePHP 3.4.11で、ファイルは「/vendor/cakephp/cakephp/src/validation/validator.php」です。

おそらく下記で全てだと思うのですが、抜けがあったり、不備がありましたら教えてください。また、一応、簡単な意味を書いたのですが、「(?)」と書かれているところは「多分こういう意味だろう」と、ちょっと自信のない説明です。何も書いていなくて「(?)」とある部分は私も意味がわからないルールになります。

メソッドの引数もせっかくなので載せていますが、その意味は省略します。

バリデーションルール
メソッド 意味
add($field, $name, $rule = []) 新しいバリデーションルールを作る
addNested($field, Validator $validator) 1対1の関係でネストしたバリデーションルール
addNestedMany($field, Validator $validator) 1対Nの関係でネストしたバリデーションルール
remove($field, $rule = null) バリデーションルールを外す
requirePresence($field, $mode = true, $message = null) フィールドの有無をチェック
allowEmpty($field, $when = true, $message = null) 空を許可する
notEmpty($field, $message = null, $when = false) 未入力をチェック
notBlank($field, $message = null, $when = null) 空を許可しない
alphaNumeric($field, $message = null, $when = null) 文字と数字のみを許可する
lengthBetween($field, array $range, $message = null, $when = null) 指定文字数の範囲内の場合は許可する
creditCard($field, $type = ‘all’, $message = null, $when = null) クレジットカード番号かチェック
greaterThan($field, $value, $message = null, $when = null) 指定値より大きいかチェック
greaterThanOrEqual($field, $value, $message = null, $when = null) 指定値以上かチェック
lessThan($field, $value, $message = null, $when = null) 指定値より小さいかチェック
lessThanOrEqual($field, $value, $message = null, $when = null) 指定値以下かチェック
equals($field, $value, $message = null, $when = null) 指定値と等しいかチェック
notEquals($field, $value, $message = null, $when = null) 指定値と異なるかチェック
sameAs($field, $secondField, $message = null, $when = null) 2つの項目が等しいかチェック
containsNonAlphaNumeric($field, $limit = 1, $message = null, $when = null) 半角英数字以外かチェック
date($field, $formats = [‘ymd’], $message = null, $when = null) 指定した日付のフォーマットと同じ日付かチェック
dateTime($field, $formats = [‘ymd’], $message = null, $when = null) 指定した日時のフォーマットと同じ日時かチェック
time($field, $message = null, $when = null) 時間のフォーマットかチェック
localizedTime($field, $type = ‘datetime’, $message = null, $when = null) 地域の日時かチェック(?)
boolean($field, $message = null, $when = null) 真偽のチェック
decimal($field, $places = null, $message = null, $when = null) 少数値かのチェック
email($field, $checkMX = false, $message = null, $when = null) メールアドレスかチェック
ip($field, $message = null, $when = null) IPアドレスかチェック
ipv4($field, $message = null, $when = null) IPv4のアドレスかチェック
ipv6($field, $message = null, $when = null) IPv6のアドレスかチェック
minLength($field, $min, $message = null, $when = null) 指定した最小文字数かチェック
minLengthBytes($field, $min, $message = null, $when = null) 指定した最小バイト数かチェック
maxLength($field, $max, $message = null, $when = null) 指定した最大文字数かチェック
maxLengthBytes($field, $max, $message = null, $when = null) 指定した最大バイト数かチェック
numeric($field, $message = null, $when = null) 数値かチェック
naturalNumber($field, $message = null, $when = null) 自然数かチェック
nonNegativeInteger($field, $message = null, $when = null) マイナス値を許可しない
range($field, array $range, $message = null, $when = null) 指定した範囲内の値かチェック
url($field, $message = null, $when = null) URLかチェック
urlWithProtocol($field, $message = null, $when = null) プロトコルのあるURLかチェック(?)
inList($field, array $list, $message = null, $when = null) リストに含まれるかチェック
uuid($field, $message = null, $when = null) UUIDかチェック
uploadedFile($field, array $options, $message = null, $when = null) アップロードファイルのチェック
latLong($field, $message = null, $when = null) 緯度経度かチェック(?)
latitude($field, $message = null, $when = null) 緯度のチェック
longitude($field, $message = null, $when = null) 経度のチェック
ascii($field, $message = null, $when = null) ASCII文字かチェック
utf8($field, $message = null, $when = null) BMP UTF8の文字列かチェック
utf8Extended($field, $message = null, $when = null) UTF8の文字列かチェック
integer($field, $message = null, $when = null) 整数かチェック
isArray($field, $message = null, $when = null) 配列かチェック
hexColor($field, $message = null, $when = null) 6桁のカラー値のチェック(?)
multipleOptions($field, array $options = [], $message = null, $when = null) 複数選択のチェック(?)
hasAtLeast($field, $count, $message = null, $when = null) (?)
hasAtMost($field, $count, $message = null, $when = null) (?)

ルールチェッカーのファイルは「/vendor/cakephp/cakephp/src/orm/ruleschecker.php」になります。

ルールチェッカー
メソッド 意味
isUnique(array $fields, $message = null) 一意(ユニーク)かチェック
existsIn($field, $table, $message = null) 指定テーブルに同じカラムがあるかチェック
validCount($field, $count = 0, $operator = ‘>’, $message = null) レコード数のチェック

PHPフレームワーク CakePHP 3入門

著者/訳者:掌田 津耶乃

出版社:秀和システム( 2017-01-14 )

定価:

Amazon価格:¥ 3,024

単行本 ( 498 ページ )

ISBN-10 : 4798048577

ISBN-13 : 9784798048574