У меня проблема с пользовательскими маршрутами и нумерацией страниц. Я прочитал все темы, которые смог найти, но, похоже, никто не сталкивался с такой же проблемой.
что я сделал, подключил этот маршрут:
Router::connect('/a/:username/*', array('controller' => 'users', 'action' => 'view'),array('pass' => array('username'),'username' => '[^-]+'));
это полностью работает для моих пользователей (я изменил действие users / view, чтобы принимать имена пользователей вместо идентификаторов).
Но наши профили пользователей - это своего рода блоги, в которых вы можете разбивать на страницы все сообщения пользователя.
поэтому я изменил нумерацию ссылок на страницы:
$paginator->options(array('url'=> array('controller' => 'users',
'action' => 'view',
'username' => strtolower($user['User']['username']) ,
),
));
и
<div class="pagination">
<?php if($this->Paginator->hasPrev()): ?>
<?php echo $this->Paginator->prev(__('Previous', true), null, null, array('class' => 'disabled')); ?>
<?php endif;?>
<?php echo $this->Paginator->numbers(array('separator' => '')); ?>
<?php if($this->Paginator->hasNext()): ?>
<?php echo $this->Paginator->next(__('Next', true), null, null, array('class' => 'disabled')); ?>
<?php endif; ?>
</div>
Это также работает в случае генерации ссылки. paginator создает нужные ссылки, такие как
domain/username/page:2
Моя проблема в том, что имя пользователя не передано правильно. при отладке $ this-> params в users / view «параметры пагинации» обрабатываются как часть «пользовательского параметра».
в этом случае я получаю:
[controller] => users
[action] => view
[username] => tim/page:2
[named] => Array
(
)
[pass] => Array
(
[0] => tim/page:2
)
где tim - имя пользователя и страница: 2 - только параметр нумерации страниц. но по какой-то причине оба параметра записываются в один вместо имени пользователя в 'username', а страница в названный параметр страницы.
после того, как действие users / view отклоняет вызов (потому что такого пользователя нет), приложение пытается перенаправить на тот же просмотр с идентификатором пользователя вместо имени в цикле и останавливается после слишком большого количества перенаправлений.
Я действительно понятия не имею, почему параметры пагинации передаются в имя пользователя.
если бы у кого-то была идея, что я делаю неправильно, это сделало бы меня очень, очень счастливым. : -)