Cakephp 3 Добавляем переменную args во всех ссылках на нумерацию страниц

Я использую CakePHP V3.5.10

Как только я испеку свой код, любой пагинатор работает, потому что добавляет это args
переменная, которая выглядит так:

domain.com/admin/categories?args=&page=3

Итак, когда я var_dump это я получаю это: var_dump($this->request->params);

array(9) {
["controller"]=>
string(10) "Categories"["pass"]=>
array(0) {
}
["action"]=>
string(5) "index"["prefix"]=>
string(5) "admin"["plugin"]=>
NULL
["_matchedRoute"]=>
string(18) "/admin/:controller"["?"]=>
array(1) {
["args"]=>
string(0) ""}
["_ext"]=>
NULL
["isAjax"]=>
bool(false)
}

если вы можете увидеть место, где обычно должно быть "page" является "args" вместо
поэтому я проверяю мое приложение diff и как обычно должно выглядеть так:

Здоровый URL: domain.com/admin/categories?page=3

array(9) {
["controller"]=>
string(10) "Categories"["pass"]=>
array(0) {
}
["action"]=>
string(5) "index"["prefix"]=>
string(5) "admin"["plugin"]=>
NULL
["_matchedRoute"]=>
string(18) "/admin/:controller"["?"]=>
array(1) {
["page"]=>
string(1) "2"}
["_ext"]=>
NULL
["isAjax"]=>
bool(false)
}

Как вы можете видеть здесь, у меня есть

array(1) {
["page"]=>
string(1) "2"

Так вот почему не работает paginator, потому что не может прочитать ?page плюс проходит это ?args что пусто … но что неизвестно, так это почему paginator будет вести себя так? и что делать, чтобы это работало?

Если есть кто-то, кто мог бы помочь с этим, я буду очень благодарен. Я сравнивал даже коды пагинатора и, конечно, понятия не имею, почему это происходит.

0

Решение

ОК, если вы обнаружите эту ошибку из-за способа передачи данных

Пример: ?page=1&sort=name&direction:asc это не CakePHP способ обработки параметров.

Правильный формат URL в торте должен выглядеть так: domain.com/2/name/asc

То, как я в конечном итоге передать параметры в routes.php:

$routes->connect('/productoptions/:page/:sort/:direction', ['controller' => 'Productoptions', 'action' => 'index'], ['param' => ['page'], 'param2' => ['sort'], 'param3' => ['direction'] ]);

Так что я могу использовать $this->request->params['page] , $this->request->params['direction] так далее…

Таким образом, я использую способ передачи и обработки параметров CakePHP вместо $_GET

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]