0

helow,我是codeigniter新手。我想动态地将我的页面加载到我的视图中。这意味着,使用一个函数。 例如,我有4页的家,关于,联系,信息。在我的视图文件夹中,我创建了一个基本布局,其中包含页眉和页脚,这些页面都是相同的。现在我希望当我点击这些页面链接时,只需加载到内容主体而无需加载完整页面。使用CI正常程序,我可以做到。这是动态页面加载使用codeigniter

function home(){ 
    $data['main_content'] = 'home'; 
    $this->load->view('template/layout', $data); 
} 


function about(){ 
    $data['main_content'] = 'about'; 
    $this->load->view('template/layout', $data); 
} 

,但我想创造出把这个页面转换成例如单个功能的功能,

function pageload($page){ 

} 

所请求的文件要么退出或不存在此功能检查。如果存在则加载页面,否则加载“页面未找到”404错误页面。我怎样才能让它... plz帮助。

我的看法文件是:

     <nav> 
        <ul class="sf-menu"> 
         <li class="current"><?php echo anchor('home/index', 'Home');?></li> 
         <li><?php echo anchor('home/amenities', 'Room & Amenitis');?></li> 
         <li><?php echo anchor('home/reservations', 'Reservations');?></li> 
         <li><?php echo anchor('home/photos', 'Photographs');?></li> 
         <li><?php echo anchor('home/pakages', 'Pakages');?></li> 
         <li><?php echo anchor('home/explore', 'Explore');?></li> 
         <li><?php echo anchor('home/contact', 'Contact');?></li> 
        </ul>  
       </nav> 

和控制器:

<?php 

如果(!定义( '基本路径'))退出( '允许无直接脚本访问');

class Home extends CI_Controller{ 

    function __construct(){ 
     parent::__construct(); 
    } 

    function pageload($page){ 
     $data['main_content'] = $page; 
     $this->load->view('template/layout', $data);    
    } 
} 

?>

+0

笨已经做了你想要的一切后。如果您没有控制器(或该控制器中的相应功能),则会生成404错误页面。而且你根本不需要编写任何代码。 –

+0

我知道它是德维恩,但我的问题是,如何使用单个函数加载我的所有页面。 –

+0

然后我不明白你的问题。也许你可以扩展它或提供更大的上下文。 –

回答

0

你可以做一些lilke这

function pageload($page){ 
    $data['main_content'] = $page; 
    $this->load->view('template/layout', $data); 
} 

如果u不想显示的URL CONTROLLER_NAME /页面加载,然后在应用程序/配置/ routes.php文件 添加一个数组

$route['(home|about_us|other_page|another_page)'] = 'controller_name/pageload/$1'; 

并加载您的404页面只需去应用程序/ co nfig/routes.php文件 找到这一行$route['404_override']和其值设置为snythingü要像

$route['404_override'] = 'page_not_found'; 

然后在你的控制器只需添加一个名为控制器和page_not_found.php加载从控制器乌尔所需404自定义视图。

+0

如何从我的页面链接中获取$ page变量的值? –

+0

只是在你的URL类型你的URL'http:// site_name/controller_name/home'或'http:// site_name/controller_name/about_us' – Mohan

+0

请让我知道它是否工作.. – Mohan

0

试试这个功能,我认为这将有助于你

function build_view($flake) { 
    $this->data['content'] = $this->load->view($flake, $this->data, TRUE); 
    $this->load->view('header', $this->data); 
} 

添加此需要在索引功能添加到其他功能像

function index(){ 
    $this->$data['main_content'] = $page; 
    $this->build_view('template/layout.php') 
}