2013-04-10 3 views
0

Paginator에 대한 초보자 질문. 테이블이있는 DB가 있습니다. 국가, 지역 및 속성 이제 영역별로보기를 수행하여 영역별로 정렬 된 속성을 표시합니다 (예 : domain.com/regions/view/33). Paginator는 해당 지역과 관련된 정보를 계산하고 표시합니다. 지역 [총 60 개 지역] 및 33 구역의 속성 [3 속성]을 표시하거나 계산할 Paginator를 갖고 싶습니다. 어떻게해야합니까? 여기 cakePHP Paginator 관련 테이블

public function index() { 
    $this->Region->recursive = 0; 
    $this->paginate = array('limit' => 10,'order' => 'Region.id ASC'); 
    $this->set('regions', $this->paginate()); 
} 

public function view($id = null) { 
    if (!$this->Region->exists($id)) { 
     throw new NotFoundException(__('Invalid region')); 
    } 
    $options = array('conditions' => array('Region.' .$this->Region->primaryKey => $id)); 
    $this->set('region', $this->Region->find('first', $options)); 
    $this->paginate = array('limit' => 10,'order' => 'Region.id ASC'); 
    $this->set('regions', $this->paginate()); 
} 

이 내 view.ctp에 매기기를 표시하는 코드

<br /> 
<div class="regions view"> 
<b><center><?php echo nl2br(h($region['Region']['titletag'])); ?></center></b> 
<div class="paging"> 
<?php 
    echo $this->Paginator->prev('< ' . __('previous'), array(), null, array('class' => 'prev disabled')); 
    echo $this->Paginator->numbers(array('separator' => '')); 
    echo $this->Paginator->next(__('next') . ' >', array(), null, array('class' => 'next disabled')); 
?> 
</div> 


이 코드에 인 RegionsController.php 내 코드입니다 Region.php 모델.

class Region extends AppModel { 

/** 
* Display field 
* 
* @var string 
*/ 
public $displayField = 'regionname'; 


/** 
* belongsTo associations 
* 
* @var array 
*/ 
public $belongsTo = array(
    'Country' => array(
     'className' => 'Country', 
     'foreignKey' => 'country_id', 
     'conditions' => '', 
     'fields' => '', 
     'order' => '' 
    ) 
); 

/** 
* hasMany associations 
* 
* @var array 
*/ 
public $hasMany = array(
    'Property' => array(
     'className' => 'Property', 
     'foreignKey' => 'region_id', 
     'dependent' => false, 
     'conditions' => '', 
     'fields' => '', 
     'order' => '', 
     'limit' => '', 
     'offset' => '', 
     'exclusive' => '', 
     'finderQuery' => '', 
     'counterQuery' => '' 
    ) 
); 

도움을 주시면 감사하겠습니다.

답변

0

CakePHP's counterCache을 사용하면 영역 당 속성 수를 일정하게 유지할 수 있습니다. CakePHP는 당신을 위해 모든 일을 처리합니다.

그런 다음, 당신은 단지 짜잔 당신의 regions 테이블에서 "property_count"필드가 있고, 것 - 그것으로, 당신이 그것으로 정렬 할 수 있습니다 필터를 ... 등 등 등

때마다 당신이 속성을 추가 또는 속성을 삭제하면 CakePHP가 자동으로 카운트를 업데이트합니다.

+0

안녕하세요, 초보자 인 Dave가 시도해 볼 것입니다.하지만 지역별로 볼 때 property_count는 내가 다른 지역을보고 계시고 카운터가 변경되었거나 자동으로 진행되는 것을 어떻게 알 수 있습니까? – Nick

+0

@ 닉 - 나는 길을 잃었다. - 미안. – Dave

+0

치명적인 오류 : 39 행의 /app/Model/Region.php에 Region :: $ belongsTo을 다시 선언 할 수 없습니다. – Nick