cakephpで複数の文字列を含めたくない場合のバリデーション

うまくいかなくてアホみたいに1時間くらいかけてしまったので自戒の念を込めてメモ。

以下、モデル内のバリデーション設定

<?php
var $validate = array(
  'user_name' => array(
    'allowName' =>array(
      'rule'     => 'isAllowName',
      'message'  => 'ご指定のユーザー名は使用できません', 
    ),
  )
);

function isAllowName($field = array()) {
    return !preg_match('/(アホ|ばか)/', $field['user_name']);
}

user_nameに「アホ」「ばか」を含む場合、エラーを出す。

最初customでやろうとしたけど正規表現がどーしてもうまくいかなかったので、独自のバリデーションでpreg_matchを使った。

何年cakeやってんだ。本当にアホでばかだな、俺は。