我在CodeIgniter安裝中的簡單控制器有以下問題。CodeIgniter控制器給404或它無法加載視圖文件
在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
from/views/pages/buy
It被改爲添加另一個子文件夾(例如, 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);
}
的問題是,我收到了404無論URL的。
如果我從$this->load->view
刪除pages/
它會引發另一個錯誤:無法加載文件;但它確實獲得了正確的文件。 (例如無法加載buy/go.php, while the URL is
site.com/buy/go`)。
你確定uri_string()工作正常嗎?它會在index.php – Gerep 2012-04-14 18:54:20
之後返回所有內容我不確定;我不知道如何檢查,因爲我得到404無論URL。有關如何檢查它的任何建議?謝謝。 – Lee 2012-04-14 18:58:09
那麼,在PHP上,你可以使用var_dump(),嘗試在你的構造函數中使用它,只要'var_dump($ this-> uri-> uri_string());退出();',只是爲了確保它返回你所需要的。 – Gerep 2012-04-14 19:00:30