CakePHP1.2でValidation関係を触ってみる。
本当に1.2系列のKnowledge無いんですね・・・・。英語のドキュメントすらないとは・・・。
ってことで、次は1.2系を入れた理由の1つ、入力文字の判定周りを触ってみます。
まずは、Modelで定義する方法。
var $validate = array( 'owner_mail' => array(
'rule' => array('email'),
'message' => 'メールアドレスは正しく入力してください'));
$validateで設定をします。
公式はこんな感じ?
$validate(‘カラム(キー)値’ => array(‘rule’ => array(‘ルール定義’),’message’ => ‘エラー時のメッセージ’));
エラー時のメッセージは入力フォームの直後に出ます。
次にController。
$this -> Model名 -> validates($this ->data);
今回は、データ投入をするのではなくあくまで入力内容チェックなので、これだけ。
ポイントは「validates」。「s」付きですよ!
これでModelに書いたデータを精査します。
最後はView。
< ?php echo $form->error('save等で使った入力キー値', 'エラー文');?>
通常、エラー文は出るので、これはたとえば入力フォームの一番上に列挙する形で置いておくのがいいかもしれません。
良くあるパターンですね。エラーがあるときだけ文章が出てくる感じ。
で、動いてはいるんだけど・・・なんかアラートが出てる罠。
Warning (512): (Model::validates) Parameter usage is deprecated, set the $data property instead [CORE/cake/libs/model/model.php, line 1745]
何々、えーと・・・「パラメータの書き方は非推奨、$dataの特性?を推奨します。」
ん??
validatesの書き方がおかしいのかな・・・・?もうちょっと調査します。
[tags]CakePHP,Validates,1.2,CakePHP1.2[/tags]
about 2 years ago
Parameter usage is deprecatedの問題は分かりました。
どうやら、Validatesには配列の形で渡してはいけないようです。
$this -> ModelName -> validates();
なので、事前に回避策でCreateをすることで解決。
$this -> ModelName -> create($this -> data);
about 2 years ago
突然のコメントで失礼いたします。
ブログを拝見させていただきまして、是非とも協力をして
いただきたくコメントという形で、ご連絡をいたしました。
当サイトは「ブログで繋がるコミュニケーション」をテーマに
参加していただくブロガーの皆様を幅広く募集をしています。
ランキングを楽しんだり、さまざまなブログを拝見したり、
ブログを持っている方々のコミュニケーションの、
一つの引き出しとして、その場を提供したいと考えています。
当サイトの検索バーの横にブログの登録フォームがあります。
お手数をおかけいたしますが、ご賛同いただいて、ブログの登録を
御願いできれば幸いでございます。
是非、御願いします。こちらのサイトです。
http://www.p-netbanking.jp
なお、こちらのミスで謝って、再度、ご連絡をした場合。
また、全く興味のない方は削除されてください。