カテゴリ: モデル

ページ: << 1 2 3 4 5 >>

入力フォームが複数ページある時のValidateの方法

パーマリンク 2008/08/05 15:06:22 著者: cakephp メール
カテゴリ: モデル, コントローラー

CakePHP1.2 RC2

ページ内にある項目について入力チェックを行いたい場合は、Model の $validate にあれこれと書くことで入力チェックを行うことが出来ます。

【参考】
バリデーション 
Validateで新規登録と更新時の処理を分ける方法 
Validateのエラーメッセージを複数書いた時に最初のメッセージを出す方法 

1ページ内に全ての項目があれば良いのですが、複数ページに入力項目がある場合、$validate に予め記載して、1ページ目の時点で入力チェックを行ってしまうと、2ページ目にある項目のチェックに引っかかりエラーとなってしまいます。

その対処方法。

Model の $validate は全ての項目について記載しておきます。
ですが、1ページ目の入力チェックを行う場合に2ページ目の項目のチェックを外します。

unset($this->Sample->validate['name']);

name という項目の入力チェックを外す場合は、コントローラで上記のように unset してあげれば対応できます。

コンポーネントでモデルを呼ぶ方法

パーマリンク 2008/07/25 16:56:17 著者: cakephp メール
カテゴリ: モデル, コンポーネント

CakePHP1.2 RC2

Model 名が Sample の場合、

App::import('Model', 'Sample'); 

これでコンポーネントでモデルが使えるようになります。

Validateのエラーメッセージを複数書いた時に最初のメッセージを出す方法

パーマリンク 2008/07/24 17:01:16 著者: cakephp メール
カテゴリ: モデル

CakePHP1.2 RC2

'mail' => array(
    array(
        'rule' => VALID_NOT_EMPTY,
        'required' => true,
        'message' => '入力してください'
    ),
    array(
        'rule' => array('email'),
        'message' => 'メールアドレスが正しくありません'
    ),
),

上記のように一つの項目に対して、複数の rule を指定している場合でも、入力が何もないときには、「入力してください」というメッセージが出て欲しいところですが、「メールアドレスが正しくありません」と表示されます。
(メッセージが上書きされて、最後のメッセージが表示されます)

「入力してください」を表示するには、

'mail' => array(
    array(
        'rule' => VALID_NOT_EMPTY,
        'required' => true,
        'last' => true,
        'message' => '入力してください'
    ),
    array(
        'rule' => array('email'),
        'last' => true,
        'message' => 'メールアドレスが正しくありません'
    ),
),

上記のように「'last' => true,」を追加すると、それぞれのメッセージで処理が止まるので、期待通りの動作になります。

Validateで新規登録と更新時の処理を分ける方法

パーマリンク 2008/07/23 16:14:09 著者: cakephp メール
カテゴリ: モデル

CakePHP1.2 RC2

新規登録時と更新時で validate の内容を使い分けたい時は

'name' => array(
    array(
        'rule' => VALID_NOT_EMPTY,
        'required' => true,
        'on' => 'create',
        'message' => '入力してください。'
    ),
),

という感じで 'on' => 'create' を追加すれば新規登録時のみチェックを行います。
create の部分を update に変更すると、更新時のみチェックを行います。

空を許可しない値のバリデーション時の注意点

パーマリンク 2008/07/16 16:31:46 著者: cakephp メール
カテゴリ: モデル

CakePHP1.2 RC2

バリデーションの基本は「バリデーション」を参考にしてください。


空の許可を与えない場合に

'rule' => VALID_NOT_EMPTY

と書くだけで一見問題ない動作をしますが、正常なフォームから呼ばれなかった場合など、この値自体が渡されなかった時には、これだけだとスルーしてしまいます。

そこで、空は通さない値の時は、上記に加え、

'required' => true

も追加するようにしましょう。

<< 1 2 3 4 5 >>

2017年10月
 << <   > >>
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

CakePHPに関する情報をまとめていきます。

開発スピードがアップできればうれしいです。

>>連絡はこちらへどうぞ



CakePHP最新版
CakePHP 1.2.3.8166


CakePHPの書籍

CakePHPによる実践Webアプリケーション開発

CakePHP1.2で作成する人にオススメ。
とても参考になります。

まるごとPHP!(vol.2)

安藤さんの解説が載っています。
AmazonのPagination部分は参考になります。

CakePHPによるWebアプリケーション開発

まだ読んだことありません

CakePHPポケットリファレンス
CakePHPポケットリファレンス
CakePHP1.2 でやるなら、これがあると何かと便利♪

CakePHP徹底入門
CakePHP徹底入門
CakePHP1.2 を今から始めるならここから

Fast CakePHP
Fast CakePHP
シンプルでわかりやすい CakePHP の入門書

CakePHPガイドブック
CakePHPガイドブック
CakePHP1.1 ではとても参考にした CakePHP 最初の入門書

検索

XMLフィード

16ブログ     powered by b2evolution