RSS

Modelをいじる。

16 12月

さていろいろ長くかこうと思ったんだけど、今日はねる・・・。
ピンポイントにとりあえず、Model関連。基本的な記述方法。

		//名前空白NG
	    'name' => array(
	        'notEmpty' => array(
	            'rule' => 'notEmpty',
	            'required' => true,
	            'message' =>'氏名を入力してください',
                    'last' => true, //これに引っかかったらもうチェックをやめる。(文字列長のチェックに移動しない)
	        ),
                //文字列チェック
	        'between' => array(
	            'rule'=> array('maxLengthJP','50'),
	            'message'=> '50文字以内で入力してください'
               )
	    ),
	    'fax' => array(
	        'alphaNumeric' => array(
	            'rule' => 'Numeric',
	    	  'allowEmpty' => true,   //必須じゃない場合は、こちらでチェック
	            'required' => true,
	            'message' =>'半角数字のみで入力をしてください',
	        		'last' => true,
	        ),
	        'between' => array(
	            'rule'=> array('between',10,15),
	            'message'=> '10文字以上15文字以内で入力してください'
	        )
	    ),
     )

とりあえず、こんなところ。
・特定のメッセージがでたら、そこでチェックを抜けたい場合は’last’ => true.(必須のチェックにひっかかったら文字列長チェックとかしないでぬける、とかいうシーンで)
・必須じゃないけど、何か入ってたらチェックする、っていう場合は’allowEmpty’ => trueを設定。
それと、validateはsave()時に何も指定しないと勝手に呼ばれる。validateで何か問題が起きた場合はSQLが実行されないのでsave()がされず、「…?」な状態になる。validateの配列がまずいとか、ない値?をvalidateに書いてたりすると、かな。とりあえずSQLが実行されない場合はまずvalidateを疑ったほうがいいと思うwいや、これ結構時間くって「…」だったんです。(エラーでもないんだよね。なんかちょっとでも出てくれればいいんだけど。どこかに出るのかな?)はじめのうちはvalidateをすこしずつ書いて、様子みたほうがいい。デバッグに時間かかるかもしれないから。

・それと、save()は新規作成・更新時両方に呼ばれるけど、
‘on’ => ‘create’ なら Insert 時のみのチェック。
‘on’ => ‘update’ なら Update 時のみ、ルールが有効になる。(つい最近フォーラムでみたのでメモって今さがしてきたw)というスンバらしい要素もあるらしいのでこれもメモ。先人の情報に感謝、感謝。

それと、validateを構成するときに必ずでてくる、日本語文字列の長さのチェック。1.3からはまた違ってくるようだけど1.2の現在、日本語の文字列はcakephpの標準の文字列長のチェックには引っかからない。はいこれテストに出ます!というわけで…。最終的にはこちらのサイトを参考にさせていただきました。いやむしろそのままというか…。いつもお世話になっております。cakephperさん。って今調べたら新しい記事にはプラグインでまとめて複数プロジェクトで統一して…とか書いてある事にきがつきました。がまだ自分はそこまでいってない感じがするので、プラグイン化はまた別の機会に。(まだ、共通化的な部品が出きってない)

php習得初めて半年程度、cakeは本格的に初めて3ヶ月程度、だけど今開発にある程度集中できているのでこのままどっぷり浸って、皆さんの役に立つような記事がかけるように精進いたします。今日は、とりあえずmodelいぢくって躓いたことを並べてみました。

開発を始めて、の感想
良いところ
・やっぱり、簡単なデータ取得でSQL文を書かなくて良いのは非常に楽だと感じます。あと、オブジェクト思考的な考え方というか、そういうのが少し、あれば「これで取れるかな」と思うデータはだいたい取得できる。感覚的に。
・テーブル間のアソシエーションは強力。これは本当に偉大だと思う。いちいち、マスタのデータを取得するためにSQLをひっぱりだしてこなくてもいい。

・もともと言語的に強力な「連想配列」に慣れていないので感覚的にまだつかみづらい。これはphpの問題なのでcake関係ねえw(土台がVB,Javaなもんで…。)
・私は感じないけど、MVC自体に慣れてないと「ファイルが点在する!」って思う人もいそう。

さて、寝る。今日もつぶやきにお世話になりました。

あ、それとこちらの連載の続きも結構期待してます◎

広告
 
コメントする

投稿者: : 12月 16, 2009 投稿先 cakephp

 

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

 
%d人のブロガーが「いいね」をつけました。