RSS

日別アーカイブ: 12月 21, 2010

Containable Behaviorを追いかけてみました。

cakephp 1.3.3で開発しております。
今回は先日わたくしがハマった事象についてお話します。多少書きなぐり気味ですが><許してください。

前提条件

1.A_controllerでpaginateしている
2.paginate対象のモデル(User)には色々なモデルが関連付けられているが、その1部であるHogehogeというモデルをLEFTJOINではなく、INNERJOINで連結したいので一度unbindする
3.このメソッドが呼ばれる前にapp_controllerのbeforeFilter()にUserモデルで検索をかけている箇所がある。そこはContainableBehaviorが使われている

という前提でした。

1.A_controllerのpaginateの箇所はこんなかんじ。

$this->User->unbindModel(array('belongsTo'=>array('Hogehoge')), false);//第2引数をfalseにすることでモデルの関連性を維持させる

			'joins'=>array(
				array(
					'type'	=>'INNER',
					'fields'=>array('Hogehoge.name'),
					'table'=>'`Hogehoges`',
					'alias'=>'`Hogehoge`',
					'conditions'=>array(
						'Hogehoge.id = Hogehoge.user_id',
					),
				),
			),
//このあとpaginate実行

でハッピー! にならなかった・・・というお話。

 

Read the rest of this entry »

 
Leave a comment

投稿者: : 12月 21, 2010 投稿先 cakephp

 
 
フォロー

Get every new post delivered to your Inbox.

現在523人フォロワーがいます。