我正在使用CakePHP 3.2.7。在我的控制,我分頁表如下:cakephp 3.2.7分頁 - 忽略頁面選項
class CollectionsController extends AppController
{
public function index()
{
$page_number = 1;
$page_size = 10;
if($this->request->query('page') !== null){
if(array_key_exists('number', $this->request->query('page'))){
$page_number = $this->request->query['page']['number'];
}
if(array_key_exists('size', $this->request->query('page'))){
$page_size = $this->request->query['page']['size'];
}
}
$this->paginate = [
'limit' => $page_size,
'page' => $page_number,
//'order' => ['Collections.id' => 'desc']
];
$collections = $this->paginate($this->Collections->find('all'));
$this->set(compact('collections'));
$this->set('_serialize', true);
}
}
的PAGINATE選項limit
和order
做的工作。但是,page
和offset
(未顯示)選項似乎被忽略。當打印的$this->request->params['paging']
內容(請求第2頁時的表2連3排的尺寸/限制,查詢像http://localhost:8765/api/collections?page[number]=2&page[size]=2
),我得到:
"finder": "all",
"page": 1,
"current": 2,
"count": 3,
"perPage": 2,
"prevPage": false,
"nextPage": true,
"pageCount": 2,
"sort": null,
"direction": false,
"limit": null,
"sortDefault": false,
"directionDefault": false
的perPage
選項的值爲2(我期望)但是page
的值爲1(當它應該是2)。爲什麼page
選項在其他分頁選項正在工作時被忽略?
感謝您的回覆。我正在嘗試通過您提到的頁碼。 (請參考問題中的這一行:''page'=> $ page_number,')。問題是,不管我設置的頁碼是多少,它總是默認爲1. – Elfalem
正確,因爲你沒有正確傳遞它。你不需要這個代碼'page'=> $ page_number',這是你自動處理的內容。首先,刪除'page'=> $ page_number',然後進入你的瀏覽器和'http:// localhost:8765/api/collections?page = 2&size = 2'你也需要修改:'$ page_size = $ this- > request-> query ['page'] ['size'];'to:'$ page_size = $ this-> request-> query ['size'];'爲上面的url工作。 – Jsonras