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やってんだ。本当にアホでばかだな、俺は。