2012-06-06 136 views
1

我想包括頭在我的application.I創建了一個控制器site,並在其中定義的函數header,這使得數據變量views/header.php笨包括文件

然而,當我嘗試訪問myUrl/site/header所有varialble工作正常,但是當我在現場控制器index中創建另一個功能,並在其中包括views/header,並且我運行site/index,那麼我會在標頭中獲得未定義的變量通知。

任何想法?

class site extends CI_Controller { function header() {

$data =array('name'=>'foo');

$this->load->view('includes/header',$data); }

function index() {

$this->load->view('includes/index'); } }

INDEX.PHP

$this->load->view('includes/header');

+0

請張貼您的代碼。 –

回答

0

得到它解決了!!!!

寫了一個新的幫助器,並從那裏返回數據,然後使用load-> view('includes/header',$ data)傳遞數據以查看。

2

如果你想保持獨立的細分中的HTML頁面(如頁眉,頁腳,導航欄等),以單獨的視圖文件,我覺得這是更好地做到這一點通過以下方式

將你想要成爲標題的內容保存到文件名header.php(或其他任何你喜歡的內容)以查看文件夾。假設,在header.php中的內容是

<html> 
    <head> 
     <title>This is title</title> 
    </head> 
    <body> 

名爲footer.php另一個文件包含在查看文件夾下面

</body> 
</html> 

另一個文件my_view.php放置該頁面的內容。示例內容是

<?php $this->load->view('header');?> 
<h1>Welcome</h1> 
<p>Main contents here</p> 
<?php $this->load->view('footer');?> 

現在,如果您加載從您的控制器功能的my_view,整個HTML頁面將被渲染。

function my_controller_function(){ 
    $this->load->view('my_view'); 
} 
+0

問題是,在標題視圖中有動態變量,它們在標題控制器中定義。這些變量有問題,並給出未定義的錯誤 – Shaun

+0

我認爲你應該嘗試重構代碼。你想要做的不是正常的行爲 – Nayan

0

這不是正確的做法。基本上我會像Rafiqunnabi那樣做,除非我不在視圖中加載視圖。

對於e.g:

public function index() 
{ 
    $this->load->view('include/header'); 
    $this->load->view('home'); 
    $this->load->view('include/footer'); 
} 
+0

我使用上面的代碼,但它在include/header中使用的變量有問題 – Shaun