はじめに
みなさんこんにちは!kentaです!
今回はお問い合わせなどのフォームで主に使うであろう、
バリデーションについて書いていこうと思います。
- バリデーションとは
- バリデーションの書き方(基礎)
- バリデーションを動的にする方法
- まとめ
バリデーションとは
コードを書き始めの方はなかなか聞き慣れない言葉だと思います。
英語ではValidation、読み方はバリデーションです。
バリデーションとは、
フォームで入力された値がこちら側が期待している形式の値に
合致しているかを確認する機能
です!
…….例えば!
“名前”という項目に####のような文字を入れて確認ボタン押すと、
“名前は漢字で入力してください”というエラーが出たとします。
このエラー文が期待している形式であり、それに合致しているかを検証することができます。
この検証をしっかりとできていないと、DBに思わぬデータが保存されていたり、
保存したはずのデータが保存できていなかったり….色々と問題が起こります。
簡単にいうと、セキュリティの一部の処理だということを頭に入れておきましょう。
バリデーションの書き方(基礎)
バリデーションの書き方自体はカンタンです!
bakeを使うとわかりますが、Model内に“ValidationDefault”というメソッドができていると思います。
このメソッドをControllerで使用するのが一般的だと思います。
$this->{Model名}->newEntity({配列}, [option]);
$this->{Model名}->patchEntity({オブジェクト}, {配列}, [option]);
バリデーションは上記のように、配列をオブジェクト化する際に行います。
“newEntity”と“patchEntity”をする際に、バリデーションも合わせて見てくれるんです。
なんてカンタンな!
バリデーションを動的にする方法
ここではいくつか[option]でできる基本動作を書きます。
まず、バリデーションをしたくないとき。
‘validate’ => false
これでバリデーションがかからなくなります。
ちなみに、trueにすると”ValidationDefault”を見てくれます。
ValidationDefaultを継承して新たなバリデーションを作成したとき
‘validate’ => {メソッド名}
メソッド名ですが、”Validation{メソッド名}”としましょう。
継承する方法は、メソッド内ではじめに
$validator = $this->{メソッド名}($validator);
と記述するだけです!
これはよくやると思うので、しっかり覚えておきましょう!!
まとめ
バリデーションの重要性を感じてもらうには、
バリデーションの種類であったり、
これをしなかったときに起こる問題を目の当たりにしたときになるとは思います。
そのときにでも、あぁあの記事で書いてあったのはそういうことだったのね。
こんな感じでふと思っていただければ幸いです。
ここでは本当に基礎・基本の使い方のみ記述しているので、
どんどん動的にする方法をマスターしていきましょう!!
コメントを残す