CakePHP

CakePHP2.x系のバリデーション、alphaNumericがダメダメなので、独自バリデーションで回避。

2013/08/03

CakePHP2.3.6のバリデーションの「alphaNumeric」、本などには「半角英数字のみ許可」となっていますが、なぜか日本語が通ってしまいました。

有名な話しらしいので、原因はすぐに判明。
元のルーチンがちょと特殊な書き方をしているために起きるようです。

修正はコアな部分を書き換えてしている方もいましたが、そんなところを書き換えるのはリスクが大きいため、
普通に独自のバリデーションを作ったほうが早いので、さくっと作りました。

AppModel に以下を作成。

バリデーション対象のモデルからは以下のようにすれば、bool値が返ります。

割りとお手軽。

[tgAmazonItemLookup asin="B005VIKQPA" related="1"]

-CakePHP
-, , , ,