2014-01-07 2 views
0

나는 검색 기능이 내장 된 CakePHP 1.3.5 사이트가 있습니다. 문제는 검색 결과가 너무 많아 한 화면에 표시 할 수없고 검색 프로세스에 많은 시간 (30 초 이상)이 소요된다는 것입니다. CONTROLER에서cakephp의 검색 결과 페이지 매기기

나는이 :

public function search() { 
    $regions = $this->RealEstate->Region->find('list'); 
    $realEstateCategories = $this->RealEstate->realEstateCategories(); 
    $realEstateTypes = $this->RealEstate->RealEstateType->find('list'); 
    $this->set(compact('regions', 'realEstateCategories', 'realEstateTypes')); 
} 

public function results($local = false) { 
    if (!$this->RequestHandler->isAjax()) { 
     $this->cakeError('error404'); 
    } 
    if ($local) { 
     $params = $this->_myEstatesCriteria(); 
     $this->set(compact('local')); 
     $realEstates = $this->RealEstate->search($this->data, $params['conditions']); 
    } else { 
     $realEstates = $this->RealEstate->search($this->data); 
    } 
    $this->layout = ''; 
    $this->set(compact('realEstates')); 
} 

나는 조건에 제한을 설정하고이 시도했지만 결과가 없어.

$this->paginate = $this->RealEstate->search($this->data); 
$realEstates = $this->paginate(); 
+0

http://book.cakephp.org/2.0/en/core-libraries/components/pagination.html이를 통해 이동합니다. –

+0

그는 2.0이 아닌 1.3을 사용하고 있습니다. – burzum

답변

1

체크 the official documentation about pagination for CakePHP 1.3, 페이지 매김 기가 어떻게 작동하는지 자세히 설명합니다. 마지막 코드 스 니펫은 사용 방법을 모르는 것을 분명히 보여줍니다. paginator 자체가 데이터를 가져오고 결과 집합을 paginator에 전달하지 않습니다. 설명서 만 확인하면 모든 것이 있습니다. 문서에서 가져온

예 :

public function list_recipes() { 
    $this->paginate = array(
     'conditions' => array('Recipe.title LIKE' => 'a%'), 
     'limit' => 10 
    ); 
    $data = $this->paginate('Recipe'); 
    $this->set(compact('data')); 
); 
+0

모델에있는 모든 조건이 컨트롤러 기능에 있어야한다는 것을 의미합니까? http://pastebin.com/AGtTnN1R – user2529807

+0

아니, 뚱뚱한 모델이 좋습니다. 이 예제는 paginate 속성에 조건을 설정하기 만하면된다는 것을 보여줍니다. 설명서를 읽으십시오. 다음과 같이 할 수 있습니다 : $ this-> paginate = $ this-> Model-> getYourPaginationSettings(); – burzum

+0

그래, 내가 해냈다 고 생각해. 결과의 첫 페이지를 얻었으나, echo $ this-> paginator-> numbers();를 쓸 때, 내부 오류 500이 발생하고, 1 페이지 또는 제한된 결과 만 ... – user2529807