CakePHP3で正規表現を使ったカスタムバリデーションをする方法

95 回閲覧されました
みなさんこんにちは、jonioです。
モデルでカスタムバリデーションをかけたのですがうまくいかずやっとの思いで実装できたのでメモとしてこの記事を残します。
CakePHPのバージョン
3.6で動作確認しています。
〜Table.php
下記の記述をします。
$validator
->scalar('demo_column')
->requirePresence('demo_column', 'true')
->notEmpty('demo_column')
->add('demo_column', 'customFormat', [
'rule' => function ($value, $context) {
return preg_match('/^\d{2}:\d{2}$/', $value) == 1;
}
]);
ポイントは7行目の「== 1」でこれを記述しないといけないです。
これがないと必ずバリデーションエラーになります。