【发布时间】:2015-12-18 00:41:04
【问题描述】:
我只是在学习 codeigniter,但被以下内容难住了:
我的路由文件中有这些路由:
$route['(:any)'] = 'pages/view';
$route['news/create'] = 'news/create';
$route['news/(:any)'] = 'news/view/$1';
$route['news'] = 'news';
$route['default_controller'] = 'pages/view';
然而,当我加载 http://mysite/index.php/news 时,它加载的是新闻页面而不是“页面/视图”。我认为因为我在顶部有包罗万象的路线,所以这个页面也只会加载页面/视图。
我哪里错了?
【问题讨论】:
-
捕获所有路线应该在最后。但是如果你为新闻定义了一个路由,它就会去新闻。
-
这不是有点违背命令的目的吗?
-
不,这是合乎逻辑的:您首先定义您的“特殊”路线,如果还有其他内容,请转到页面/视图。所以如果你想要新闻去
pages/view只需删除新闻路线。 -
但是如果我说的正在发生,那么似乎即使我先定义任何一个,它仍然会指向“特殊”控制器,这让我感到困惑,因为我认为顺序很重要,这似乎建议它没有。我知道我可以删除新闻路线,我只是想理解。鉴于首先定义了 any toutes 并且顺序很重要,我可以想象当 url 包含新闻时调用 any 路由,尽管有新闻路由。
-
是的,对不起,我错了。用 CI2 和 3 测试,似乎顺序没有任何影响。
标签: php codeigniter routes