【CakePHP】1人前のケーキ職人になるまで

パティシエじゃないよエンジニアだよ

バリデーションとは?

今回は、バリデーションについて説明したいと思います。

バリデーションとは、簡単にいうと「入力チェック」のことです。

だいたい

入力チェック
書式チェック

のことで、入力チェックは入力フォームに指定した文字数以上文字が入力してあるとか、例えばフォームの電話番号の欄に数字ではなく文字が入っていないかをチェックします。

書式チェックは、データをファイルから読み込む時、変なファイルを読み込まないように読み込む前にファイルの内容が妥当であるかをチェックします。

そしてCakePHP のバリデーションは、任意の配列データに対するバリデーションを簡単に行うための バリデーター構築のパッケージを提供します。

今回は、入力チェックに関したバリデーターを作ってみましょう。

バリデーターを作成する
use Cake\Validation\Validator;

$validator = new Validator();

一度作成した後、バリデーションを適用したいフィールドに対して、実際にルールを設定して行きます。

public function validationDefault(Validator $validator)
  {
    $validator

      ->notEmpty('title') //タイトルがないのを許さない
      ->requirePresence('title') //タイトルがあるのを保証する

      ->notEmpty('body')
      ->requirePresence('body')
      ->add('body', [
        'length' => [
          'rule' => ['minLength', 10], //文字数を10文字以上に指定
          'message' => 'body length must be 10+'
        ]
      ]);

    return $validator;
  }
}

これで、「入力フォームが空でない」かつ「bodyが10文字以上である」というルールでバリデーションを設定することができました。

<参考したサイト>
バリデーション - 3.x