2016-03-24 94 views
1

我在MY_Controller 公共功能is_logged,我想在我的視圖文件使用此像這樣:功能從MY_Controller查看 - 笨

<?php if($this->is_logged()): ?> 
    Hey user. 
<?php else: ?> 
    Please login first. 
<?php endif; ?> 

,但我得到了一個錯誤:

Call to undefined method CI_Loader::is_logged()

我該如何在我的視圖文件中使用它?

問候。

+0

的可能的複製[如何從視圖調用codeigniter控制器函數](http://stackoverflow.com/questions/9986520/how-to-call-codeigniter-controller-function-from-view) – Technoh

+1

您不應該在視圖文件中調用控制器函數。考慮創建一個助手,並在助手中使用'$ CI =&get_instance();'來獲取'$ CI'對象,如果你需要的話。 – Technoh

+0

@Technoh所以我不能在視圖中調用控制器功能?那麼如何檢查is_logged? – mateuszji

回答

1

您只能在控制器類中訪問此屬性,而不是在視圖中。在控制器中的方法,訪問它,然後在陣列中定義它,因此它可以然後被傳遞到您的視圖作爲一個變量:

public function test(){ 
    $this->load->view('test', array('logged'=> $this->is_logged())) 
} 

然後在視圖:

if($logged){ 
    ... 
} 
+0

如果你有這個錯誤,那麼你沒有正確傳遞變量。那或者'$ this-> is_logged()'的結果是NULL。你能否更新你的原始問題並在你的代碼中包含更多信息? – CodeGodie

+0

我的不好,現在它很美麗,向你問候。 – mateuszji

+0

如果您發現此答案有幫助,請點擊左側的複選標記以接受該答案。謝謝。 – CodeGodie