Backbone.js を使用する CakePHP アプリケーションを (パートナーと共に) 開発しています。
したがって、基本的に、私の Cake アプリケーションは大部分が JSON API のように動作します。コントローラー アクションが特定のビューをロードした後 (データはまだレンダリングされていません)、Backbone は別のコントローラー アクションに AJAX 呼び出しを行い、データをフェッチします。コントローラーは JSON を返します。
(routes.php ファイルには mapResources と parseExtensions 行が配置されています)
コントローラーコード
public function index(){
$company_id = $this->Session->read('Company.id');
$channel_ids = $this->Order->Channel->find('all', array('conditions' => array('Channel.company_id' => $company_id), 'fields' => array('Channel.id')));
$channel_ids = Set::extract('/Channel/id', $channel_ids);
$data = $this->paginate('Order', array('Order.fulfillment_status_id' => 1, 'Order.channel_id' => $channel_ids));
$this->set('orders', $data);
//In case of a JSON request
if($this->RequestHandler->ext == 'json') {
$this->autoRender = false;
echo json_encode($data);
}
}
これはうまくいきましたが、これでページネーションを実装しようとしたときに壁にぶつかりました。
- ページネーション リンクを生成するにはどうすればよいですか? (バックボーン経由で行う場合、データベース内の総レコード数がわからないため、生成するリンクの数がわからない)
- 「ページ番号」を AJAX 呼び出しにどのように焼き付ける必要がありますか? コントローラでどのように解読する必要がありますか?
本当にここで立ち往生しています。あなたの助けに本当に感謝します。