読者です 読者をやめる 読者になる 読者になる

ほげほげ(仮)

仮死状態

CakePHPのnotEmptyについて

PHP


CakePHPのnotEmptyによるチェックですが、
半角スペースのみでもチェックでエラーになってしまいます。
※全角スペースはのみではエラーになりません。


個人的な考えとしては半角スペースでも入力されているので「入力してください」みたいなメッセージではなく「半角英数字で入力してください」みたいなメッセージのほうが好ましいと思っています。


CakePHPのソースを確認したら次のようになってました。
cake/libs/validation.php

<?php
function notEmpty($check) {
    $_this =& Validation::getInstance();
    $_this->__reset();
    $_this->check = $check;

    if (is_array($check)) {
        $_this->_extract($check);
    }

    if (empty($_this->check) && $_this->check != '0') {
        return false;
    }
    $_this->regex = '/[^\s]+/m';
    return $_this->_check();
}
?>

最後のほうに正規表現が書かれています。これによって半角スペースでもエラーになるようです。


Cake本体に手は入れたくないので、カスタムバリデーションを使うしかないかなぁ・・・