public function getParams(array $rewrite = [])
{
$params = $this->params;
// change page
if (isset($rewrite['page']) && $rewrite['page'] > 1) {
$params[$this->prefix . 'page'] = $rewrite['page'];
}
// change limit
if (isset($rewrite['limit'])) {
if ($rewrite['limit'] != $this->defaultLimit) {
$params[$this->prefix . 'limit'] = $rewrite['limit'] != $this->limit ? $rewrite['limit'] : $this->limit;
}
} else {
if ($this->limit != $this->defaultLimit) {
$params[$this->prefix . 'limit'] = $this->limit;
}
}
// change orders
$orders = $rewrite['orders'] ?? $this->getOrders();
foreach ($orders as $column => $order) {
$params[$this->prefix . 'order-' . $column] = $order;
}
// change filters
$filters = $rewrite['filters'] ?? $this->getFilters();
foreach ($filters as $column => $columnFilters) {
$columnFilter = [];
foreach ($columnFilters as $filterName => $filterValue) {
if ($filterName == self::FILTER_EQ) {
$columnFilter[] = $filterValue;
} else {
$columnFilter[] = $filterName . '-' . $filterValue;
}
}
$params[$this->prefix . 'filter-' . $column] = join('-', $columnFilter);
}
return $params;
}