2013-04-01 3 views
0

cakephp로 CMS를 개발 한 필자는 몇 가지 매개 변수로 필터링해야하는 2 개의 테이블이 있으며 최적화를 위해 "hasMany"모델, 쉬운 방법으로 시작하는 쿼리를 최적화해야합니다 "belongsTo"모델에서 만들 것입니다.cakephp에 포함 된 테이블을 기반으로 페이지 매기기

class Client extends AppModel { 
    public $actsAs = array('Containable'); 

    public $hasMany = array('Projects'); 
} 

class Project extends AppModel { 
    public $actsAs = array('Containable'); 

    public $belongsTo = array('Client'); 
} 

나는 $ conditions 배열에 where 조건을 가지고 있습니다.

이렇게하면 각 클라이언트 내에 20 개의 클라이언트와 모든 프로젝트가 생성됩니다. 내가 라인의 주석을 없애면 각 20 명의 클라이언트 안에 20 개의 프로젝트가 생깁니다.

저는 20 개의 프로젝트를 원합니다. 얼마나 많은 클라이언트 (최대 20 개)가 필요합니까?

아무도 도와 줄 수 있습니까?

미리 감사드립니다.

답변

-1

프로젝트을 표시하려면 프로젝트을 페이지 매김해야합니다.

$this->paginate = array(
    'Project' => array(
     'limit' => 20, 
      'conditions' => $conditions, 

      // no need to set a limit on 'client', 
      // as each project belongs to only one client 
      'contain' => array(
       'Client' 
      ) 
     ) 
); 

$this->set('projects', $this->paginate('Project')); 

컨트롤러 내부에 $uses 배열에 Project 모델을 추가하기 위해 이러한 조치 할 수있다

관련 문제