【发布时间】:2013-09-19 12:06:54
【问题描述】:
我正在试用 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/pages/view/somepage/>
$route['(:any)'] = "pages/view/$1";
// .htaccess is already setup to rewrite the url without index.php
现在,我对 PHP 没有太多经验,URL 重写 和 MVC 架构 的概念对我来说相当新。
假设有页面称为 •Home、 •About、 •Admin 和 •Contact。
对于页面•Home、•About 和•Contact,Pages 控制器可以正常工作。
但是对于 •Admin 页面,我想要一个单独的控制器来确定用户是否已登录,以及他是否具有管理员权限等。如果他还没有登录,我应该加载 Login 视图,而不是 Admin 视图。
Pages 控制器的逻辑相当简单。它检查参数中的字符串,附加 .php 并附加视图目录,是否作为文件存在。如果不是show_404(),如果是,加载视图header-template,然后加载页面,然后加载视图footer-template。我敢肯定,大多数使用过 CodeIgniter 的人一定见过类似的静态页面逻辑。
我可以在我的 Admin 视图中执行 redirect('login'),但这似乎不起作用。如果我为 Admin 创建一个单独的控制器,我将如何访问它,而根据路由,每个 URL 都会被定向到 pages/view 控制器(上面代码中的第 4 行)。
正如我已经说过的,我对此很陌生。这可能是我正在犯的一些迟钝的错误。或者我的整个 MVC 结构可能构建不当。我该如何克服这个问题并开始担心身份验证问题?谁能给点建议?
【问题讨论】:
标签: php codeigniter