ただのブログです

技術的な物とかを主に。主にWeb系がメイン。いつか、職業エンジニアになりたい。

CakePHPでバリデーションのヘルパーを作る

phpではstaticなメソッドであってもフィールド内で呼び出しが出来ないためバリデーションのヘルパメソッドを作る場合にはコンストラクタで呼び出すのが良い模様。
動的バリデーションをかけるのと同じ感じで。

例えば

class ValidationHelper {
  public static between($min, $max, $option) {
    $default = $array('rule' => array('between', $min, $max),
      'message' => __('%d文字以上%d字以内', $min, $max));
    return array_merge($default, $option);
  }

}

みたいな感じにしてコンストラクタ内で

$validate = array(
  'field' => array('between' => ValidationHelper::between(5,15))
);

と呼ぶことで一応できるっぽい。 動的バリデーションと同じ感じ