1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-25 04:07:17 +08:00
2023-12-25 20:18:27 +08:00

81 lines
1.7 KiB
PHP

<?php
/**
* @copyright Copyright (c) 2021 深圳市酷瓜软件有限公司
* @license https://opensource.org/licenses/GPL-2.0
* @link https://www.koogua.com
*/
namespace App\Library\Paginator;
use Phalcon\Di;
use Phalcon\Filter;
use Phalcon\Http\Request;
class Query
{
/**
* @var Request
*/
protected $request;
/**
* @var Filter
*/
protected $filter;
public function __construct()
{
$this->request = Di::getDefault()->get('request');
$this->filter = Di::getDefault()->get('filter');
}
public function getPage()
{
$page = $this->request->getQuery('page', ['trim', 'int'], 1);
return min($page, 100);
}
public function getLimit()
{
$limit = $this->request->getQuery('limit', ['trim', 'int'], 12);
return min($limit, 100);
}
public function getSort()
{
return $this->request->getQuery('sort', ['trim', 'string']);
}
public function getBaseUrl()
{
return $this->request->getQuery('_url', ['trim', 'string']);
}
public function getParams(array $whitelist = [])
{
$params = $this->request->getQuery();
if ($params) {
foreach ($params as $key => &$value) {
$value = $this->filter->sanitize($value, ['trim', 'string']);
if ($whitelist && !in_array($value, $whitelist)) {
unset($params[$key]);
} elseif (!is_array($value) && strlen($value) == 0) {
unset($params[$key]);
}
}
}
if (isset($params['_url'])) {
unset($params['_url']);
}
return $params;
}
}