[cakephp4] バリデーションの変更点

こんにちわ、masumasuです。

本年も宜しくお願いいたします。

今回は、cakephp2からcakephp4でバリデーション定義の変更点を書いていきます。

cakephp2

public $validate = array(
    'login' => array(
        'alphaNumeric' => array(
            'rule' => 'alphaNumeric',
            'required' => true,
            'message' => '文字と数字のみです',
            'allowEmpty => true,
        ),
    ),
);

cakephp2では'$validate‘という変数名を利用する、それを配列形式で定義していくことで利用できるようになっていました。

cakephp4

public function validationDefault(validator $validator): validator 
{
  $validator
     ->requirePresence('login')
     ->notEmptyString('login', 'このフィールドに入力してください')
     ->alphaNumeric('login', '文字と数字のみです');
  return $validator;
}

cakephp4ではデフォルトのバリデーションとして ‘validationDefault()' を定義し、コントローラー側の 'newEntity()' などでのサイクルの一部で実行されます。

もちろん、別のバリデーションメソッド名は別の名前も定義できますが、メソッド名の接頭辞に validation と付与する必要があります。

以上がcakephp2からcakephp4で変更になったバリデーション定義の変更点になります。

ご覧いただきありがとうございました。