【问题标题】:How to pass variable that contains path file as parameter to controller in codeigniter如何将包含路径文件的变量作为参数传递给codeigniter中的控制器
【发布时间】:2015-07-27 08:07:36
【问题描述】:

有人可以帮我解决这个问题吗?我是 codeigniterstackoverflow 的新手。 所以我有这个控制器来呈现我的网站页面:

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/admin/test.php 中的“测试”视图。

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

无论如何,这个锚点不起作用,因为菜单视图错误地将 URI 传递给控制器​​。 我怎么能问我的控制器它必须加载那个视图? 非常感谢所有帮助我的人!

【问题讨论】:

  • 当你点击链接时,它会说什么?详细说明 此锚点不起作用。
  • 显示404错误!
  • 那你需要检查文件是否存在!
  • 文件存在但如何通过URI传递文件路径?
  • admin另一个子文件夹,test是php文件?

标签: php codeigniter url uri parameter-passing


【解决方案1】:

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

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);            
    }
}

但就个人而言,我会在第二种方法中将那些检查子文件夹文件是否存在的方法分开,以避免名称冲突问题。

【讨论】:

    猜你喜欢
    • 2015-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多