2010-08-17 4 views
1

테이블에서 계산 얻을 수 있지만, 행의 양이 너무 큰 경우, 나는 예외 얻는 방법 :행이 나는 교리 테이블 모델의 모든 행을 얻기 위해 보편적 인 스크립트를 썼다 교리

Cannot define NULL as part of query when defining 'offset'. 

실행 스크립트

$table = new JV_Model_StoreOrder(); 
$this->data['list'] = $table->getTable()->findAll()->toArray(); 

위의 오류로 인해 테이블의 항목 수가 너무 많아서 (> 20 000) 이해합니다. 그래서 나는 페이 지너 (paginator)를 만들어 100 페이지 분량의 기록을 없애기로 결정했습니다.

예 교리 교재 :

... 
$total_amount = $table->getTable()->count(); 
$this->data['list'] = $table->getTable()->offset(0)->limit(100) 
->findAll()->toArray(); 
... 

답변

1

교리가 자신의 페이지 매김 구성 요소의가 있습니다

당신은 내가 그런 일을 할 수있는 방법, 나에게 도움이 될 수

// Defining initial variables 
$currentPage = 1; 
$resultsPerPage = 50; 

// Creating pager object 
$pager = new Doctrine_Pager(
     Doctrine_Query::create() 
      ->from('User u') 
      ->leftJoin('u.Group g') 
      ->orderby('u.username ASC'), 
     $currentPage, // Current page of request 
     $resultsPerPage // (Optional) Number of results per page. Default is 25 
);