OpenIDでログインして、ニックネームを登録してもらうような画面でのバリデートメモ。

usersテーブルのnicknameカラムにバリデートをかけたい。


チェック項目は3つ。

  • ユニークなニックネームか
  • 文字数制限内か
  • 空白のみではないか

空白のみの入力をfunction notSpaceでチェック。

APP/model/user.php

<?php
class User extends AppModel {
    var $name = 'User';
    var $validate = array(
        'nickname' => array(
                            'notSpace' => array(
                                                'rule' => array('notSpace'),
                                                'message' => '空白のみは登録できません。'
                                                ),
                            'between' => array(
                                               'rule' => array('between', 1, 45),
                                               'message' => '1文字以上入力してください。(全角15文字まで)'
                                               ),
                            'isUnique' => array(
                                                'rule' => 'isUnique',
                                                'message' => 'すでに登録されています。'
                                                ),
                            ),
        );
    function notSpace($field=array()) {
      foreach($field as $name => $value){
        if (preg_match("/^( | )+$/", $value)) {
          return false;
        } else {
          return true;
        }
      }
    }
}
?>