如何将包含路径文件的变量作为参数传递给编码器中的控制器


How to pass variable that contains path file as parameter to controller in codeigniter

有人能帮我解决这个问题吗?我是编码器堆栈溢出的新手。我有一个渲染网页的控制器:

class Pages extends CI_Controller {
public function view($page = 'home') {
if ( ! file_exists(APPPATH.'/views/pages/'.$page.'.php')) {
show_404();
} else  {
$this->load->view('templates/menu');
$this->load->view('pages/'. $page);
}
}

这个方法加载放置在'pages'目录中的视图,它适用于该目录下的所有视图。现在菜单视图包含了一个链接,该链接应该加载位于pages/admin/test.php中的'test'视图。

<a href="<?php echo site_url('pages/view/admin/test')?>">

无论如何,这个锚不起作用,因为URI被错误地从菜单视图传递给了控制器。我怎么让控制器加载那个视图呢?非常感谢所有帮助我的人!

如果包含所需文件,您可以重新检查位置

if ( ! file_exists(APPPATH.'/views/pages/'.$page.'.php') && 
     ! file_exists(APPPATH.'/views/pages/admin/'.$page.'.php')) {
    show_404();
} else {
    $view = file_exists(APPPATH.'/views/pages/'.$page.'.php');
    $viewadmin = file_exists(APPPATH.'/views/pages/admin/'.$page.'.php');
    $this->load->view('templates/menu');
    if ($view) {
        $this->load->view('pages/'. $page);
    } else {
        $this->load->view('pages/admin/'. $page);            
    }
}

但我个人认为,我会把它们分开在第二个方法中,检查子文件夹文件是否存在,以避免名称冲突问题