【问题标题】:Codeigniter routing is conflicting on pagination and other URLCodeigniter 路由在分页和其他 URL 上发生冲突
【发布时间】:2019-04-10 10:24:27
【问题描述】:

CodeIgniter 路由在分页和另一个 URL 上发生冲突。实际上,我正在尝试在分页上加载以下 URL。

http://127.0.0.1/Mytredin_codesup/snippets

对于我的帖子,我想加载以下网址

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';

【问题讨论】:

  • 您是否尝试删除第三个路由并检查?
  • 使用分页时显示页面未找到
  • 其实我想在同一条路线上使用两个 url(上面提到的)...
  • 你的意思是你想让两个 url 路由到同一个函数吗?也就是说sn-ps控制器中的view函数?
  • $route['sn-ps/(:num)'] = 'sn-ps';这将加载索引函数和 $route['sn-ps/(:any)'] = 'sn-ps/view/$1';这将加载 sn-ps 类的视图函数

标签: php codeigniter routing


【解决方案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';

问题是在num 之前使用anyany 将接受除/ 之外的任何字符,并且不会到达num 路由。因此,更改路由顺序将起作用。

【讨论】:

  • 现在 $route['sn-ps/(:any)'] = 'sn-ps/view/$1';停止工作
  • 尝试更改路由顺序或使用正则表达式代替any
  • 我又卡住了!!我现在该怎么办?
  • 该 URL 是否总是包含由连字符连接的字符和数字?
猜你喜欢
  • 2013-06-05
  • 2017-03-22
  • 2017-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-26
  • 1970-01-01
相关资源
最近更新 更多