渡されたURL内のパラメータのフィルタリングこれは、CakePHPのように見えるCakePHPは - 私は、CakePHP 2.xのを経由してそのAPIを実装したサードパーティのPHPサーバで働いています
は、具体的にをされていないとしても、その場合は、クエリパラメータを受け入れますコントローラ側。例えば
、私は私のブラウザ
https://server/api/logs.json?sort=TimeKey&direction=desc
でこのURLを呼び出すとき、それはこのようにTimeKeyに基づいて降順にソートされたリストを返します。その可能性が構築する場合、私は思っていた
{"logs":[{"Log":{"TimeKey":"1486576200.482136","Component":"zma_m5","ServerId":"0","Pid":"10931","Level":"0","Code":"INF","Message":"Deck Camera: 4138848 - Opening new event 66155, section start","File":"monitor.cpp","Line":"1532"}} <etc>
を「条件」を適用できるクエリーURL、つまり、コントローラコードを変更することなく「Code = ERR」のフィールドのみを表示しますか?サードパーティーを考えると、私の最初の好みは、それを変更してURLを使って処理する必要がないことです。
コントローラの実装はhereです:動作しません
<?php
App::uses('AppController', 'Controller');
/**
* Logs Controller
*
* @property Log $Log
* @property PaginatorComponent $Paginator
*/
class LogsController extends AppController {
/**
* Components
*
* @var array
*/
public $components = array('Paginator', 'RequestHandler');
public $paginate = array(
'limit' => 100,
'order' => array('Log.TimeKey' => 'asc'),
'paramType' => 'querystring'
);
/**
* index method
*
* @return void
*/
public function index() {
$this->Log->recursive = -1;
$this->Paginator->settings = $this->paginate;
$logs = $this->Paginator->paginate('Log');
$this->set(compact('logs'));
}
// ...
}
私がしようとしてきた様々な組み合わせ(のような&コード= ERR &ログ[コード] = ERR)。ありがとう。