開発者の備忘

「起」と「結」しか書かないので詳細はご自分でお調べください

【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!」とメッセージが表示される。