CakePHP - 过滤传递的参数 URL
CakePHP - filtering for parameters in the passed URL
我正在与第 3 方 PHP 服务器合作,该服务器已通过 CakePHP 2.x
实现了其 API
看起来 CakePHP 接受查询参数,即使它不是专门 implemented 在控制器端。
例如,当我在浏览器中调用此 URL 时
https://server/api/logs.json?sort=TimeKey&direction=desc
它returns一个基于 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 也可以应用 "condition",也就是说,只显示 "Code=ERR" 的字段而无需更改控制器代码?考虑到它的第 3 方,我的第一选择是不必更改它并通过我构建的 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'));
}
// ...
}
我一直在尝试各种组合(例如 &Code=ERR &Log[Code]=ERR),但均无效。谢谢。
I was wondering if its possible to construct a query URL that can also apply a "condition" [...]
我不熟悉 ZoneMinder,但通常情况下,参考代码不可能做到这一点。
默认情况下,分页器组件仅支持 sort
、direction
、limit
和 page
选项。
我正在与第 3 方 PHP 服务器合作,该服务器已通过 CakePHP 2.x
实现了其 API看起来 CakePHP 接受查询参数,即使它不是专门 implemented 在控制器端。
例如,当我在浏览器中调用此 URL 时
https://server/api/logs.json?sort=TimeKey&direction=desc
它returns一个基于 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 也可以应用 "condition",也就是说,只显示 "Code=ERR" 的字段而无需更改控制器代码?考虑到它的第 3 方,我的第一选择是不必更改它并通过我构建的 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'));
}
// ...
}
我一直在尝试各种组合(例如 &Code=ERR &Log[Code]=ERR),但均无效。谢谢。
I was wondering if its possible to construct a query URL that can also apply a "condition" [...]
我不熟悉 ZoneMinder,但通常情况下,参考代码不可能做到这一点。
默认情况下,分页器组件仅支持 sort
、direction
、limit
和 page
选项。