Model内で独自バリデーションメソッドを追加する場合の注意

| | コメント(0) | トラックバック(0)
CakePHPのモデル内で、独自のバリデーションメソッドを追加する場合に、自分自身や他のモデルを呼びたいときの書き方。

class Hoge extends AppModel {

	var $validate =	array(
				'moreValidation' => array(                
				'rule' => 'moreValidation',              
				);
	var $belongsTo = array(
			'Hoge2' => array(〜);
			);
	function moreValidation() {
		$this->find(〜);
		$this->Hoge2->find(〜);
		ClassRegistry::init("Hoge3")->find(〜);
	}
}

  1. 該当モデル自身を呼び出すときは $this->find(〜) 
  2. アソシエーションしてるモデルは $this->Hoge2->find(〜); 
  3. アソシエーションしてないモデルは ClassRegistry::init("Hoge3")->find(〜); 
で呼び出せそうです。正しいやり方かどうかは知らんけどこれで動く。 オイラは、自身を $this->Hoge->find(〜) としてて動かず、そのあと3の ClassRegistryを使ってもうまくいかず、しばらくハマりました。←アホ

トラックバック(0)

このブログ記事を参照しているブログ一覧: Model内で独自バリデーションメソッドを追加する場合の注意

このブログ記事に対するトラックバックURL: http://kawamura.jp/mt-tb.cgi/12

コメントする

このブログ記事について

このページは、misakiが2009年6月24日 12:54に書いたブログ記事です。

ひとつ前のブログ記事は「CakePHP1.2 Router Prefix」です。

次のブログ記事は「XcodeでCのMySQL APIを使う設定」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

カテゴリ

ウェブページ

Powered by Movable Type 4.1