function link(){
$this->paginate = array(
'conditions'=>array("Item.area" => 7,
),
'limit'=>10,
);
$this->set('link',$this->paginate());
}
function shop(){
$this->paginate = array(
'conditions'=>array("Shop.area" => 7),
'sort'=>'id',
'limit'=>10
);
$this->set('shops',$this->paginate());
}
こんなカンジで、同じコントローラー内で2回paginateが出てくるので、1回目のpaginateは上書きされてしまいます。
どうしても同じコントローラー内でpaginateではないとダメなんです。分かるかた、教えてください
複数のModelに対してpaginateを使う場合は、paginateメソッドの第一引数で指定します。
質問文から察すると、同じController内であっても、同じActionで複数使う必要はないですよね?
それであれば、こんな感じで行けると思います。
class SomeController extends AppController { var $paginate = array('Item' => デフォルト条件, 'Shop' => デフォルト条件); function link() { $this->paginate['Item'] = array('conditions' => array("Item.area" => 7), 'limit'=>10); $this->set('link',$this->paginate('Item')); } function shop() { $this->paginate['Shop'] = array('conditions' => array("Shop.area" => 7), 'sort'=>'id', 'limit'=>10); $this->set('shops',$this->paginate('Shop')); } }
同じAction内に複数のModelに対するpaginateも使えますが、ページ番号の扱いがあるので、ちょっと一捻り必要になります。
何かの参考になれば。
まったくもっておっしゃるとおりでした!無事動きました