cakePHP3でバリデーションするとき、半角英数字のみの確認ではalphaNumeric()を利用する方が多いと思いますが、これが効果ないとの情報が多く上がっていました。

確かに、全角平仮名でも通ってしまいました。

addで独自で設定して反映させる方法がネットでは良く見かけましたが、結局は自分で正規表現で確認する方法が良さげっぽい。

ということで、自分は以下の方法で設定することにした。

// usernameの登録名を半角英数字のみにする
->add('username', [
  'alphaNumeric' => [
    'rule' => ['custom', '/^[a-z0-9]{3,}$/i'],
    'message' => __('半角英数字のみ入力可能です。'),
  ],
])