2017-02-08 5 views
1

渡された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)。ありがとう。

答えて

1

その可能ならば、私は

[...]また、「条件」を適用することができ、クエリURLを構築するために思っていた私はZoneMinderに慣れていないんだけど、通常はそれが持つことはできません参照されるコード

デフォルトでは、ページ切り替えコンポーネントは、sort,directionlimit、およびpageオプションのみをサポートしています。

関連する問題