[CakePHP]バリデーションではまった話

CakePHP4のバリデーションではまった話

バリデーションのalphaNumericが日本語をはじかないというので
preg_matchで実装しようとしたら動作しなくて困った

最初は下記のように書いたら「The provided value is invalid」のエラーが発生

色々調べてみると・・・
https://www.php.net/manual/ja/function.preg-match.php

preg_matchの戻り値
マッチした場合は1
マッチしなかった場合は0
失敗した場合はfalse

そう。マッチしない場合はfalseではない。
なので上記に書いたコードだと動作しない。

下記のように書き換えて動作確認できた!

戻り値をifで判定してreturnでちゃんと戻す。

これで1日悩んでました。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA