cake焼きました(13)
「tableを必要としなバリデート」
マニュアルや他のサイトを読むと、DBにデータをSAVEする時にバリデートを行うことが前提のように書いてある。
http://book.cakephp.org/ja/view/125/%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E3%83%90%E3%83%AA%E3%83%87%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3-Data-Validation
では、SAVEと関係なしに入力されたパラメータについてバリデートを行いたい場合はどうすべきか?
をメモしておきます
モデルへの記載
class Result extends AppModel { var $name = 'Result'; var $useTable = false; //[重要]tableを意識しない時はテーブルを使わない設定を var $validate = array( //バリデートを定義する 'keyword' => array( 'rule' => array('minLength', 1), 'message' => 'キーワードを入力してください' )); }
コントローラへの記載
$keyword = $_GET['searchword']; $params = array('Result' => array('keyword' => $keyword)); //モデルに渡すパラメータを定義 $this->Result->set($params); //モデルにパラメータをセット if(!$this->Result->validates()) { //バリデートを行う。 $this->redirect('error'); //パラメータが異常な時の処理 }
これでいつでもどこでもバリデートを。