Маршрутизация Codeigniter конфликтует с нумерацией страниц и другим URL

#php #codeigniter #routing

#php #codeigniter #маршрутизация

Вопрос:

Маршрутизация CodeIgniter конфликтует с нумерацией страниц и другим URL. На самом деле, я пытаюсь загрузить следующий URL-адрес при разбивке на страницы.

http://127.0.0.1/Mytredin_codesup/snippets

И для моего сообщения я хочу загрузить следующий URL

http://127.0.0.1/Mytredin_codesup/snippets/auto-loader-63152391

Но одновременно выполняется только один URL-адрес.

Я использую следующую маршрутизацию

 $route['snippets/(:any)'] = 'snippets/view/$1';
$route['allsnippets/(:num)'] = 'welcome';
$route['snippets/(:num)'] = 'snippets';
  

Комментарии:

1. Вы пытались удалить третью маршрутизацию и проверить?

2. показывает страницу, которая не найдена, когда я использую нумерацию страниц

3. на самом деле я хочу использовать оба URL-адреса (упомянутые выше) по одному и тому же маршруту…

4. вы имеете в виду, что хотите, чтобы оба URL-адреса были перенаправлены на одну и ту же функцию? Другими словами, функция просмотра в контроллере snippets?

5. $route[‘snippets /(:num)’] = ‘snippets’; это загрузит функцию индекса и $route[‘snippets / (:any)’] = ‘snippets / view / $ 1’; это загрузит функцию просмотра класса snippets

Ответ №1:

Вам нужен номер страницы в вашей функции для третьей маршрутизации?

да, это то, что я хочу на этом маршруте

Итак, попробуйте изменить свое третье правило маршрутизации на,

 $route['snippets/(:num)'] = 'snippets/index/$1';
  

и ваша функция в snippets контроллере

 function index(page_no){
    //your code here
}
  

Редактировать:

Сохраняйте правила маршрутизации в этом порядке.

 $route['snippets/(:num)'] = 'snippets/index/$1';
$route['snippets/(:any)'] = 'snippets/view/$1';
$route['allsnippets/(:num)'] = 'welcome';
  

Проблема заключается в использовании any before num , который any будет принимать любой символ, кроме / и не попадет в num маршрутизацию. Итак, изменение порядка маршрутизации будет работать.

Комментарии:

1. Теперь $route[‘snippets/(:any)’] = ‘snippets / view/ $ 1’; перестает работать

2. Попробуйте изменить порядок маршрутов или использовать регулярное выражение вместо any

3. Я снова застрял!! что мне теперь делать?

4. этот 127.0.0.1/Mytredin_codesup/snippets/auto-loader-63152391 сейчас не работает

5. Будет ли этот URL-адрес всегда содержать символы и цифры, соединенные дефисами?