[CakePHP2]validationルールのalphaNumeric日本語対応

以前からCakePHPのバリデーションルールのalphaNumericが日本語を通してしまうという問題がありましたが、CakePHP2.2.0でも同様のようです。

CakePHP1.3系ならAppModelで

function alphaNumeric($check) {
	return preg_match('/^[a-zA-Z0-9]+$/', $value);
}

(多分)これで良かったと思うのですが、CakePHP2系になってから、第1引数に渡ってくる値がarray([フィールド名] => [値])になったようなので、下記のようにします。

public function alphaNumeric($check) {
	$value = array_values($check);	// 配列の添字を数値添字に変換して・・・
	$value = $value[0];		// 最初の値を取る
	return preg_match('/^[a-zA-Z0-9]+$/', $value);
}
スポンサーリンク
336x280_1
336x280_1

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
336x280_1