misaki: 2009年6月アーカイブ

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を使ってもうまくいかず、しばらくハマりました。←アホ

このアーカイブについて

このページには、misaki2009年6月に書いたブログ記事が含まれています。

前のアーカイブはmisaki: 2009年4月です。

次のアーカイブはmisaki: 2009年7月です。

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

カテゴリ

ウェブページ

Powered by Movable Type 4.1