Php 代码点火器-卡在线路上
我正在试用CodeIgniter 2.1.4。我已经有了一个显示静态页面的控制器,它是我使用CodeIgnitor文档中的教程构建的。我后来设置了如下路线:Php 代码点火器-卡在线路上,php,codeigniter,Php,Codeigniter,我正在试用CodeIgniter 2.1.4。我已经有了一个显示静态页面的控制器,它是我使用CodeIgnitor文档中的教程构建的。我后来设置了如下路线: // <http://localhost/> refers to <http://localhost/pages/view/> $route['default_controller'] = "pages/view"; // <http://localhost/somepage/> refers to
// <http://localhost/> refers to <http://localhost/pages/view/>
$route['default_controller'] = "pages/view";
// <http://localhost/somepage/> refers to <http://localhost/pages/view/somepage/>
$route['(:any)'] = "pages/view/$1";
// .htaccess is already setup to rewrite the url without index.php
//指的是
$route['default_controller']=“页面/视图”;
//指
$route['(:any)]=“页面/视图/$1”;
//.htaccess已设置为在不使用index.php的情况下重写url
现在,我对PHP没有太多经验,URL重写和MVC架构的概念对我来说是相当新的
比如说,有一些页面叫做•主页、•关于、•管理员和•联系人
对于页面•主页、•关于和•联系人,页面控制器正常工作
但是对于•Admin页面,我希望有一个单独的控制器来确定用户是否登录,以及他是否拥有管理员权限等。如果他还没有登录,我应该加载登录视图,而不是管理视图
页面控制器具有相当简单的逻辑。它检查参数中附加了.php
并以views目录作为前缀的字符串是否作为文件存在。如果不显示_404(),则加载视图页眉模板,然后加载页面,然后加载视图页脚模板。我敢肯定,大多数使用过CodeIgniter的人肯定都见过类似的静态页面逻辑
我可以在我的Admin视图中执行重定向('login')
,但这似乎不起作用。如果我为管理员创建一个单独的控制器,我将如何访问它,同时根据路由,每个URL都被定向到页面/视图
控制器(上述代码中的第4行)
正如我已经说过的,我对这方面还相当陌生。可能是我犯了个愚蠢的错误。或者我的整个MVC结构可能构建不当。我如何克服这一点,开始担心身份验证的问题?有人能提供建议吗
$route['default_controller'] = "pages/view";
$route['admin/(:any)'] = "admin/$1"; //(admin controller) with "any" method
$route['(:any)'] = "pages/view/$1";
localhost/poject/admin/edit
作为示例
您遇到的问题很简单,您通过该(:any)
覆盖了所有控制器。这没有错,但您需要手动将您想要路由的每个控制器分配为正常控制器,正如我在上面发布的那样
请注意,路线取决于订单,如果使用一条(第一条),则忽略第二条路线。“路由将按定义的顺序运行。较高的路由将始终优先于较低的路由。”
有关身份验证,请参见此
我宁愿使用\u remap()
并接管我的路由,而不是使用此路由$route['(:any)]=“pages/view/$1”代码>在routes.php中
我正要回答我自己的问题。我想最好的办法就是你说的。我现在有一个$route
分配给每一页;)。如果是关于、联系人或主页,则路由为pages/view/$1
,但如果是admin,则路由为admin/index/$1
。但这可能不是最有效的方法。我将按照您提到的第一条路线first和\u remap()
策略使用一些不同的逻辑: