2015-04-18 31 views
5

我可以從鉤子傳遞數據查看,如果有可能請解釋。從鉤子傳遞數據到codeigniter查看

例如

$hook['post_controller_constructor'][] = array(
    'class' => 'Varify_user', 
    'function' => 'user_project', 
    'filename' => 'varify_project.php', 
    'filepath' => 'hooks', 
    'params' => array('') 
); 

我想發送一些陣列數據varify_project.php(鉤文件)來查看。

+0

你的意思是你想添加一些陣列數據到你的觀點?像'$ this-> load-> view('view',$ data);''但是'$ data'是你的數組在鉤子中? –

+0

絕對正確...... –

回答

1

我這樣做

應用/核心/ MY_Loader.php

class MY_Loader extends CI_Loader { 
    static $add_data = array(); 
    public function view($view, $vars = array(), $return = FALSE) 
    { 
     self::$add_data = array_merge($vars, self::$add_data); 
     return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array(self::$add_data), '_ci_return' => $return)); 
    } 
} 

的application/config/hooks.php

$hook['post_controller_constructor'] = function() { 
    MY_Loader::$add_data['hello'] = "Hello World"; 
} ; 
+1

考慮編輯您的答案以添加解釋爲什麼以及您的代碼如何解決問題。 – Mephy

+1

我同意@Mephy,並且對最近的貢獻也提供了同樣的反饋。由於沒有對這個問題進行編輯,所以我對此表示歉意。如果你願意添加一兩句話,我會很樂意刪除DV。 – halfer

+0

我真的不明白,有什麼可以添加到這些簡單的代碼字符串。對於那些與Codeigniter的鉤子合作的人來說,它似乎很明顯 – splash58

3

如果你想在加載視圖時添加額外的數據,你可以擴展核心裝載機類是這樣的:

應用/核心/ MY_Loader.php

<?php 
class MY_Loader extends CI_Loader { 
    public function view($view, $vars = array(), $return = FALSE) 
    { 
     $vars['hello'] = "Hello World"; 
     return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return)); 
    } 
} 

那麼$vars['hello']會創建一個變量,您可以在任何視圖中使用該變量,稱爲$hello,並且可以重複創建任意數量的變量,以便您希望在應用程序的每個頁面上使用它們。

+0

嗨Ben thnx真的......很好的嘗試着......但是splash58正確地解釋了代碼。 –

+0

@PavnishYadav我沒有看到任何解釋的答案,只是codes.If你認爲這個答案也行,爲什麼不投票呢? –

+0

好..現在我投票了這個答案。 –

相關問題