【PHP】フォームの入力チェックmemo
概要
Validationの設定について。
Validatorが呼ばれるのはsaveメソッドの中。
解説
validatorクラス
notEmpty:値が入力されているか
requirePresence:そもそも、引数のカラムがテーブルに存在するか
add:自分でチェックを作成できる。
★例
<?php $validator-> ->add('body', [ 'length' => [ 'rule' => ['minlength', 10], 'message' => 'body length must be 10+' ] ]); ?>
・'body'・・・テーブル項目「body」に対してチェックを行う。
・'length'・・・任意のチェック名称
・'rule'・・・チェック内容
配列1番目:'minlength'=最小桁チェック
配列2番目:'10'=10桁
なので、10桁以上入力されてるかチェックとなる。
・'message'・・・チェックに引っかかった場合のメッセージ
フォームに入力された内容が10桁未満の場合、
「body length must be 10+」とメッセージが出力される。
戻り値は真偽値となる。
なので、エラーをキャッチする構文は以下のようになる。
<?php if($this->Posts->save($post)) { $this->Flash->success('Add Success!'); return $this->redirect(['action'=>'index']); } else { $this->Flash->error('Add Error!'); } ?>
問題なくフォームの内容を送信できた場合、indexのページに遷移し、
「Add Success!」とメッセージが表示される。
チェックに引っかかった場合、
「Add Error!」とメッセージが表示される。