バリデーションのnotBlank(notEmpty), required, allowEmptyの違い

基本

CakePHPでは、バリデーションはモデルに記述します。以下のように設定できます。

<?php
class Sample extends AppModel {
    public $validate = array(
        'fieldName1' => array(
            'rule'       => 'notBlank',
            'required'   => true,
            'allowEmpty' => false,
            'on'         => 'create',
            'message'    => 'エラーメッセージ'
        )
    );
}
  • notBlank (notEmpty) 空白文字不可。バージョン2.7より古い場合はnotEmpty。

  • required
    trueを指定すると必須項目になる。

  • allowEmpty
    falseを指定すると空白文字不可。

'reuqired' => true

渡された配列にfieldName1が無ければエラーとします。

'ruleName' => 'notBlank' と 'allowEmpty' => false

渡された配列にfieldName1があり、かつ空文字の場合エラーとします。fieldName1自体存在しなければ、バリデーションは実行されずエラーになりません。

この2つを同時に指定する意味はありません。notBlank以外のルールのときに、空文字を許可するかどうかallowEmptyで指定する、という感じです。