2012-12-20 3 views
1

나는 CakePHP2를 사용하고, "글로벌 기본 제한"에 레코드 수를 설정할 수 있습니다 (재구성) 페이지 매김 제한, 예를 들어, 20에서 30CakePHP의 페이지 매김 글로벌 구성

로 변경하는 방법을 찾을 수 있어요 "paginator"(PaginatorHelper?)?

"전역"은 "모든 사이트"를 의미합니다. 다음과 같은 구문 (가장 좋은 장소는 당신의 AppController 것) 컨트롤러에 글로벌 제한을 설정할 수 있습니다처럼 CakePHP의 매기기 구성 요소의 코드를 보면 컨트롤러

public $paginate = array('limit' => 25); 
+2

CakePHP 문서의 페이지를 읽지 않으셨습니까? http://book.cakephp.org/2.0/en/core-libraries/components/pagination.html –

+0

예 ... "컨트롤러의 구성 요소가 CakePHP의 페이지 매김을 제공합니다". 그러나 프레임 워크로서 각 컨트롤러가 아닌 모든 사이트를 "재구성"하는 또 다른 메커니즘을 제공 할 수 있습니다. –

답변

2

에서

+0

Hum ... beforeFilter() 메소드에서 app/Controller/AppController.php에서 테스트 ... 전역 오류 : "오버로드 된 속성의 간접 수정은 아무 효과가 없습니다." –

+0

before 필터를 사용한다면 간단히'public $ paginate = array();'를'AppController'에 넣으십시오; 이 오류가 해결됩니다. 다시, [docs를 읽으십시오] (http://book.cakephp.org/2.0/en/core-libraries/components/pagination.html). 그곳에 다 있어요 – Ross

+1

[this] (https://groups.google.com/forum/?fromgroups=#!topic/cake-php/Fxh_ldO9noU)에 따르면 $ this-> paginate [ 'limit'] = 15; parent :: beforeFilter(); 전에 모든 컨트롤러의 beforeFilter 콜백 – erem

3

, 그것은 같습니다

... 
public $paginate=array(); 
... 
public function beforeFilter() { 
    parent::beforeFilter(); 
    $this->paginate['limit'] = 15; 
} 

테스트하지는 않았지만 원하는대로 작동되기를 바랍니다.

+0

예, 로컬이지만 모든 사이트에 대해 "전체"가 필요합니다. –

+1

그게 바로 앱 컨트롤러입니다. – dogmatic69

+0

AppController.php로 테스트하고 OK! 미안 해요, 내 표결은 @Martin입니다. 당신은 아무 말도하지 않고 오직 "당신의 컨트롤러"만 ... 그것은 "특정"것으로 이해되며, 나는 (그리고 다른 어떤 Cake-beginner도) AppController가 "글로벌 구성 장소"라는 것을 모릅니다. –