Джейсон, вы сами решаете проблему просто потому, что теряете, какие сегменты являются частью контроллера / метода, и какие сегменты вы считаете релевантными.
Прежде всего, я бы сказал вам придерживаться одного метода, скажем, добавить его в конец (это с точки зрения пользователей в URI, а не в конфигурации вашего маршрута):
/view/page/1233/name/blue-skies/pg/20
Приведенный выше формат будет означать что-то вроде этого на сервере:
/view/
- это контроллер, page
- ваш метод в контроллере, тогда вы должны использовать $this->uri->uri_to_assoc(4)
(4-й элемент, имя для запуска).
Таким образом, вы правильно фиксируете номер своей страницы 1233
и затем все соответствующие данные для него.
В качестве предложения я бы предостерег от использования нечитаемых переменных, это приводит к путанице и НЕ делает ваш сайт оптимизированным для URL (кто знает, что в итоге означает / v / p / 123 / v / l / 20?) .
Всегда используйте ваш $this->output->profiler(TRUE);
, если у вас проблемы с маршрутизацией URI. Не связывайтесь с вашей конфигурацией маршрута, если вам НЕ ДЕЙСТВИТЕЛЬНО это нужно, это может привести к путанице, которая усложнит ваше тестирование.
РЕДАКТИРОВАТЬ
Я создал путаницу, потому что, основываясь на вашем вопросе, вы можете интерпретировать его как проблему маршрутизации с позиции файла config.php ИЛИ класса пагинации. Я взял это с первого подхода.
Чтобы уточнить, вам нужно просто придерживаться метода чистого URL, если вы используете uri_to_assoc, это нормально. Но только не теряйте номер своей страницы для нумерации страниц.
Вы можете решить эту проблему, сделав номер страницы последним элементом вашего URI
Последний: /view/page/1233/name/blue-skies/user/12/20
Где 20
- это номер страницы, сгенерированный пагинацией, остальные - сегменты, которые вы используете для чего угодно.
В этом случае вы установите $config['uri_segment'] = 6;
, а $config['base_url'] = '/view/page/1233/'.$this->uri->assoc_to_uri($uri_segments);
.
Где:
$uri_segments = array(
'name' => 'blue-skies',
'user' => '12');
IF
Неизвестно, сколько у вас сегментов (скажем, динамический массив $ uri_segments), используйте $this->uri->total_segments()
для подсчета общего количества сегментов, тогда ваш пагинация равна +1 к этому (последнему).