class AddValidationRuleBehavior extends ModelBehavior { function setup(&$model, $config = array()) { //$this->settings = $config; mb_internal_encoding("UTF-8"); } /** * マルチバイト用バリデーション 文字数上限チェック * * @param array &$model * @param array $wordvalue * @param int $length * @return boolean */ function maxLengthJP( &$model, $wordvalue, $length ) { $word = array_shift($wordvalue); //return( mb_strlen( $word, mb_detect_encoding( $word ) ) <= $length ); return( mb_strlen( $word ) <= $length ); } /** * マルチバイト用バリデーション 文字数下限チェック * * @param array &$model * @param array $wordvalue * @param int $length * @return boolean */ function minLengthJP( &$model, $wordvalue, $length ) { $word = array_shift($wordvalue); return( mb_strlen( $word ) >= $length ); } /** * フィールド値の比較 * emailとemail_confフィールドを比較する場合などに利用 * _confは$suffixによって変更可能 * * @param array &$model * @param array $wordvalue * @param string $suffix * @return boolean */ function checkCompare( &$model, $wordvalue , $suffix ){ $fieldname = key($wordvalue); return ( $model->data[$model->alias][$fieldname] === $model->data[$model->alias][ $fieldname . $suffix ] ); } /** * 全角カタカナ以外が含まれていればエラーとするバリデーションチェック * * * @param array &$model * @param array $wordvalue * @return boolean */ function katakana_only( &$model, $wordvalue){ $value = array_shift($wordvalue); return preg_match("/^[ァ-ヶー゛゜]*$/u", $value); } /** * 全角、半角スペースのみであればエラーとするバリデーションチェック * * @param array &$model * @param array $wordvalue * @return boolean */ function space_only( &$model, $wordvalue){ $value = array_shift($wordvalue); if( mb_ereg_match("^(\s| )+$", $value) ){ return false; }else{ return true; } } /** * only Allow 0-9, a-z , A-Z * * @param array ref &$model * @param array $wordvalue * @return boolean */ function alpha_number( &$model, $wordvalue ){ $value = array_shift($wordvalue); return preg_match( "/^[a-zA-Z0-9]*$/", $value ); } } ?>
2016年11月13日日曜日
CakePHP behaviorにValidation作る
Cake1.x系ですが、参考になりそうなのでメモ
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿