【cakePHP2.8】validationで「同意する」チェックボックスを実装する

1 min
progateなどWEBで学習する

会員登録の画面でよく「規約に同意する」チェックボックスにチェックしないと登録できないみたいなUIがありますよね。

こんな感じで。↓

https://premium.yomiuri.co.jp/c/mem/agree.jsp?appType=PC
https://premium.yomiuri.co.jp/c/mem/agree.jsp?appType=PC

これをcakePHP2.8のvalidateで実装するにあたって、少しつまづいてしまったので解決方法をメモがてら紹介します。

結論から言うと、これでOKです。

‘consentFlag’ => [
‘rule’ => [‘comparison’, ‘==’, 1],
‘message’ => ‘利用規約にご同意ください’
],

consentFlagは値のキーが入るので任意にしてもらって構いません。
で、ruleの”comparison””と言うのがcakephpにもともとあるバリデーションルールで、数値を比較するもの。

要は「“consentFlag == 1”、つまりconsentFlagがチェックされてないとダメだよー」って言うバリデーションです。

https://book.cakephp.org/2.0/ja/models/data-validation.html#Validation::comparison

NG例

ずーっと

‘consentFlag’ => [
‘allowEmpty’ => false
‘rule’ => “notBlank””,
‘message’ => ‘利用規約にご同意ください’
]

てな感じでやっていましたが、これはNGですね。「0」がnotBlankを通過する仕様になっているようです。

フレームワークは便利ですが、つまづいた時に応用できるように細かいところを見る勇気は大事です・・・。

https://www.suzuco.net/entry/programming-school/

書いた人
きりん

きりん

『好きなだけ漫画を語る。』そう思い立ち『きり漫』を立ち上げました。内容は大好きな漫画やアニメ・海外ドラマのこと。プログラミングもします。

私の発信する情報が皆さんのためになる事を願って記事を書いています。

カテゴリー:
関連記事

コメントを残す