チュートリアル - 入力データのチェック

2007年9月11日現在、最新の CakePHP 安定版では、入力チェックとして正規表現を用いることができます。

正規表現とは文字列のパターンを示す記号の集まりで、たとえば4桁の数字は /[0-9][0-9][0-9][0-9]/ と表現します。

しかし、正規表現は視認性に疑問が残るため CakePHP では定数によってよく使う入力チェックのパターンが用意されています。

  • VALID_NOT_EMPTY
    入力データは必須入力である。
  • VALID_NUMBER
    入力データは数値でなければならない。
  • VALID_EMAIL
    入力データはEメールアドレスでなければならない。
  • VALID_YEAR
    入力データは年数でなければならない。

入力チェックを WEB システムに反映させるには、モデルの var $validate という配列に対象のフィールドと正規表現(もしくは前述の定数)を記述します。

ブックマークリストの例ではサイト名と URL が必須入力ですので次のようになります。

/app/models/bookmark.php

<?php
class Bookmark extends AppModel
{
  var $name = 'Bookmark';
  var $displayField = 'site_name';

  var $validate = array('site_name' => VALID_NOT_EMPTY,
                        'url' => VALID_NOT_EMPTY);

  var $hasMany = array('Evaluation' =>
                       array('className' => 'Evaluation'));
}
?>

評価モデルに関しても、投稿者と評価の本文が必須入力ですので次のようになります。

/app/models/evaluation.php

<?php
class Evaluation extends AppModel
{
  var $name = 'Evaluation';

  var $validate = array('bookmark_id' => VALID_NUMBER,
                        'name' => VALID_NOT_EMPTY,
                        'comment' => VALID_NOT_EMPTY);

  var $belongsTo = array('Bookmark' =>
                         array('className' => 'Bookmark'));
}
?>

設定後、必須項目が未入力の場合エラーメッセージが出力されるようになり、入力チェックをパスしない限り先へ進めなくなります。

cakephp_tut_200.png

« 「チュートリアル - ブックマークに評価をつける」へ  |  トップへ  |  上の階層へ  |  「チュートリアル - scaffolding からソースコードへ」へ »

トップページへ戻る / 前のページへ戻る

back to top