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

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

Sessionコンポーネント

ソース: /cake/libs/controller/components/session.php read read($name = null) セッションの情報を読み込みます。 $

no image

Secutiryユーティリティ

CakePHPでは、データのハッシュ化もしくは暗号化のためのメソッドSecurityユーティリティが用意されています。 ソース: /cake/libs/security.php Security:

no image

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

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

no image

Htmlヘルパー

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

no image

ユーザ登録(仮登録・メール・本登録)

ここ最近は、メールアドレスだけでなく、SNSのアカウントと連携してユーザ登録することもできるWebサービスが増えてきましたね。ユーザは割合としてどちらを選んでるのか気になるところですが。私はできるだけ

メール送信(qdmail)

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

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

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

no image

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

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

Textヘルパー

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

CakePHP 1.3 インストール

使い古されている手ではありますが、表題の件とレンタルサーバへの配置方法などにも使えますので参考にしていただけたらと思います。 まずはレンタルサーバでCakePHPを動作させる CakePHPア

Message

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

*

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

    PAGE TOP ↑