我一直在尋找CodeIgniter模板系統,到目前爲止,它允許您更改頁眉或頁腳文件內的內容,但我正在尋找一種方法將數據從模型自動加載到頭文件中(取決於模板)。CodeIgniter中的模板系統允許我將數據從模型自動傳遞到標題中?
例如,在我的標題中,它顯示用戶的用戶名和收件箱。我需要從模型和用戶用戶名中加載用戶未讀消息。這取決於模板,但是 - 我只想在用戶登錄時加載該信息。
我一直在尋找CodeIgniter模板系統,到目前爲止,它允許您更改頁眉或頁腳文件內的內容,但我正在尋找一種方法將數據從模型自動加載到頭文件中(取決於模板)。CodeIgniter中的模板系統允許我將數據從模型自動傳遞到標題中?
例如,在我的標題中,它顯示用戶的用戶名和收件箱。我需要從模型和用戶用戶名中加載用戶未讀消息。這取決於模板,但是 - 我只想在用戶登錄時加載該信息。
將數據從模型傳遞到視圖不是一種好的做法。
您應該先將數據傳遞給控制器,然後才傳遞給您的視圖。
http://codeigniter.com/user_guide/overview/appflow.html
正如你可以看到這個應用程序流程圖上 - 有模型和視圖之間沒有直線。
如果您有興趣在「佈局」中顯示模型數據 - 請使用掛鉤!
http://codeigniter.com/user_guide/general/hooks.html
定義 「pre_controller」 鉤子,獲取CI實例,負荷模型,retrive數據,並在你的佈局顯示。
啓用鉤
$config['enable_hooks'] = TRUE;
定義如鉤:
$hook['pre_controller'] = array(
'class' => 'MyClass',
'function' => 'Myfunction',
'filename' => 'Myclass.php',
'filepath' => 'hooks',
'params' => array('beer', 'wine', 'snacks')
);
例如
掛鉤
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
class Gamescount
{
private $model_name = '';
public function __construct()
{
$this->CI =& get_instance();
$this->model_name = 'Games_model';
$this->CI->load->database();
$this->CI->load->model($this->model_name);
$this->CI->load->helper('url');
}
public function count_games()
{
$all_games = $this->CI->Games_model->getAllGames();
$this->CI->gamescount = count($all_games);
}
}
?>
在你的佈局,你可以得到gamescount值一樣
<?php echo $this->gamescount; ?>
帕克提到的,這不是一個好主意,打電話從視圖模型。但如果你仍然想這樣做,你可以做到。
獲取笨實例如下
$CI =& get_instance();
使用笨例如,你可以調用模型。
也許我被誤解了?我不想直接將數據加載到模型的視圖中,而是更多地查看某種模板庫,使我可以從模型加載數據以進行顯示。因此,模板庫例如充當模型和標題視圖之間的媒介。 – Muggles 2012-07-15 17:11:12
你需要在「佈局」中顯示你的數據?使用鉤子...查看編輯的帖子以獲取更多信息。 – Parker 2012-07-16 20:56:53
這似乎是我在找什麼,非常感謝。 – Muggles 2012-07-24 20:57:17