現在の CodeIgniter には少し問題があります。/views から静的ファイルをロードする "Pages" コントローラーを使用して CI をインストールしていますが、最大 1 つのサブフォルダーしかないため、別のサブフォルダーを追加しようとしています。
ほとんどの場合、次のことを行います。
- 要求された URL セグメント (例: site.com/url) がファイルとして /views にある場合 (例: /views/url.php)、そこからロードされますが、URL セグメント (例: url) が実際にはフォルダ内にある場合/views そのフォルダーから index.php をロードします (例: URL はまだ site.com/url ですが、/views/url/index.php)。
- 上記は、index.php だけでなく、他の名前のファイルにも当てはまります。site.com/url/buy がある場合、/views/url フォルダーから buy.php ファイルが読み込まれます。
私が達成しようとしているのは、この構造に新しいサブフォルダーを追加することです:
- site.com/url/buy/faq にアクセスして /views/url/buy などから faq.php ファイルをロードすると..
現在の Pages.php コントローラーは次のとおりです。
class Pages extends CI_Controller {
public function view($page = 'index', $sub_page = 'index') {
if ($page == 'index') {
$path = $page . '.php';
} else {
$path = $page . '/' . $sub_page . '.php';
}
if (!file_exists('application/views/pages/' . $path)) {
if (!file_exists('application/views/pages/' . $page . '.php')) {
show_404();
} else {
$path = $page . '.php';
}
}
// $this->output->cache(60);
// $this->output->enable_profiler(TRUE);
$data['title'] = ucfirst($page);
$data['url'] = lcfirst($page);
$this->load->view('pages/modules/header', $data);
$this->load->view('pages/'. $path, $data);
$this->load->view('pages/modules/footer', $data);
}
}
何か提案はありますか?
前もって感謝します!