ビルトインされたバリデーションルール

CakePHP標準で多くのバリデーションルールが搭載されています。

ソース:/cake/libs/validation.php


email / maxLength / minLength / time / numeric /

email (=>メールアドレス)

メールアドレスであることを検証

email($check, $deep = false, $regex = null)
$deep:trueに設定した場合は、ホストの検索まで行う。(getmxrr, checkdnsrr, gethostbynamelの順で使用可能な関数を用いる。)
$regex:正規表現でドメインを指定するとドメイン制限(指定のドメインのメールアドレスのみ許可)が可能

[php]
var $validate = array(
'email' => array(
// emailアドレスかどうか
'rule' => 'email'
)
);
var $validate = array(
'email' => array(
// 入力アドレスのドメインの存在有無を確認する。
'rule' => array('email', true),
'message' => 'Please supply a valid email address.'
)
);
var $validate = array(
'email' => array(
// gmailのみ許可する。
'rule' => array('email', false, '\gmail.com\'),
'message' => 'Please supply a valid email address.'
)
);
[/php]

maxLength(=>最大文字数)

mb_strlenで対象フィールド($check)の文字数をカウントし、最大文字数($max)以下であるかどうかを検証

maxLength($check, $max)

[php]
var $validate = array(
'title' => array(
'rule' => array('maxLength', 50),
'message' => 'Title must be no larger than 50 characters long.'
)
);
[/php]

minLength(=>最小文字数)

mb_strlenで対象フィールド($check)の文字数をカウントし、最小文字数($min)以上であるかどうかを検証

minLength($check, $min)

[php]
var $validate = array(
'title' => array(
'rule' => array('minLength', 8),
'message' => 'Title must be at least 8 characters long.'
)
);
[/php]

time(=>時間)

時間フォーマットであるかを検証。フォーマットはHH:MM(24時間表記)もしくは、HH:MMam/HH:MMpm (HH:MMとam/pmの間に半角スペースも可)のみ
**ただし、数値のみでもバリデートされるためあまり使えない。

time($check)

[php]
var $validate = array(
'starttime' => array(
'rule' => array('time'),
'message' => 'Start Time must be in time format.'
)
);
[/php]

numeric(=>数値)

数値であるかを検証。is_numericを使用しているため、小数・マイナスの数値も通します。

numeric($check)

[php]
var $validate = array(
'cars' => array(
'rule' => 'numeric',
'message' => 'Please supply the number of cars.'
)
);
[/php]

url(=>URL)

URLであるかを検証。http(s) / ftp(s) / file / news / gopherのほかIPアドレスなどもOK
ブランクを許可したい場合は、'allowEmpty' => trueを追加してください。

url($check, $strict = false)
$strict:trueに設定した場合は、httpなどのプレフィックスが必須

[php]
// url
var $validate = array(
'website' => array(
'rule' => 'url',
'allowEmpty' => true,
'message' => 'Please supply the valid url.'
)
);
// strict => true
var $validate = array(
'website' => array(
'rule' => array( 'url', true),
'allowEmpty' => true,
'message' => 'Please supply the valid url.'
)
);
[/php]

alphaNumeric(=>アルファベット・数字限定)

アルファベット・数字のみであることを検証

alphaNumeric(mixed $check)

[php]
var $validate = array(
'password' => array(
'rule' => 'alphaNumeric',
'message' => 'Password must only contain letters and numbers.'
)
);
[/php]

isUnique(=>重複データがない)

重複データがないことを検証

isUnique()

[php]
var $validate = array(
'username' => array(
'rule' => 'isUnique',
'message' => 'Usernames has already been in.'
)
);
[/php]

  • このエントリーをはてなブックマークに追加

関連記事

no image

recursive設定によるfind()性能改善

CakePHPでは、モデルにアソシエーションを設定している場合、recursive(=>joinする階層)はデフォルトで0に設定されています。「recursiveゼロ」の意味するところとは、「1跨ぎま

no image

Debugkitをインストール

CakePHPのデバッグツールとしてはデファクトスタンダードといってもいいDebugkitをインストールしました。 ダウンロード CakePHP 1.3用 https://github.com

Cookieログイン

今回は、「keep me logged in」などログイン画面でよくみかけるクッキーログインの機能を使ってみます。 CakePHPには、Cookieコンポーネントがあります。(PHPのsetcook

Textヘルパー

Textヘルパーには、テキスト処理に関する便利な機能があります。リンク付与やテキストの抜粋・ハイライトや切り取り処理など。ソース:/cake/libs/view/helpers/text.php

メール送信(qdmail)

CakePHP(+qdmail)でメール送信する処理を実装しました。 準備 2つのライブラリ(.php)をダウンロードし、以下のように配置して下さい。 app/controllers/compo

no image

Htmlヘルパー

ソース:\cake\libs\view\helpers\html.php charset / 文書の文字コードを設定する <?php echo $this->Html-

no image

シンプルに設置できる数字Captcha「MathCaptcha」

スパム防止などで利用されているCaptchaですが、数字版で使えるものがないか探してみました。 この「MathCapthca」は非常にシンプルに設置できるのはいいですが、やっぱりクエスチョンの部分は

no image

WYSIWYGエディタを実装

WYSIWYGエディタをCakePHPにいくつか試してみました。 CKEditor 実装 // head // View(~.ctp) 解凍してwebroot/jsフ

複数ファイルアップロード

CakePHPで複数ファイルのアップロードについて調べてみました。といっても普通のPHPのコードと同じではありますが、postするフィールド名に[]を付与して配列にします。 view

no image

独自のバリデーションルール

CakePHPで組み込みバリデーションをつくる方法は色々あります。 参考:Data Validation — CakePHP Cookbook v1.3 documentation 上記リンク内に

Message

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

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

    PAGE TOP ↑