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