我在 CodeIgniter 安装中遇到了一个简单控制器的以下问题。
在controllers/pages.php
Pages.php 控制器中查看 URL 段并从目录内的文件夹和子文件夹中加载静态文件/views/pages
。
例子:
- 如果我有
site.com/buy
,那么它将加载 buy.php 表单/views/pages
- 如果 URL 是
site.com/buy/go
,那么它将go.php
从 加载/views/pages/buy
,而site.com/buy
现在index.php
将从/views/pages/buy
已更改为添加另一个子文件夹(例如site.com/buy/go/why
from /views/pages/buy/go/why
);
控制器:
class Pages extends CI_Controller {
public function __construct() {
parent::__construct();
$this->view();
}
private function view() {
$url_string = $this->uri->uri_string();
if (!file_exists(APPPATH . 'views/pages/'. $url_string. '/index.php')) {
if (!file_exists(APPPATH . 'views/pages/' . $url_string . '.php')) {
show_404();
} else {
$path = $url_string . '.php';
}
} else {
$path = $url_string . '/index.php';
}
$this->load->view('pages/' . $path);
}
问题是无论 URL 是什么,我都会收到 404。
pages/
如果我从中删除$this->load->view
会引发另一个错误:无法加载文件;但它确实得到了正确的文件。(例如,无法加载buy/go.php, while the URL is
site.com/buy/go`)。