2012-12-01 39 views
0

我正在爲Codeigniter中的代理機構開發CRM,並且我有一個問題,我似乎無法找到可靠的答案。如果我在控制器中的大多數方法上執行任務,是否有任何方法可以只定義一次該操作?例如...在Codeigniter構造函數中調用模型...如何

每個視圖通話將被傳遞$ data變量,像這樣......

$this->load->view('templates/template.php', $data); 

所以,如果我做這樣的事情在控制器的各項功能得到管理員的信息,如何我可以告訴它做一次這樣的行爲,並將其傳遞給我所有的功能。

就像這個...

$data['admin'] = $this->Crm_model->get_admin(); 

我試圖把該^在構造和它不工作。有任何想法嗎?

回答

2

如果你這樣做:

$data['admin'] = $this->Crm_model->get_admin(); 
在構造

$data的範圍僅限於構造函數。您需要將其創建爲類屬性,以便將其範圍限定在整個類中。在構造函數中執行此操作,而不是

$this->data['admin'] = $this->Crm_model->get_admin(); 

,然後在其他的方法,你可以通過做$this->data

這裏訪問數組的一個例子:

class Foobar extends CI_Controller { 

    public function __construct() { 
     $this->data['foo'] = "bar"; 
    } 

    public function index() { 
     // use the class property data here to add more info to it 
     $this->data['hello'] = "world"; 

     // now pass this to the view 
     $this->load->view('myView', $this->data); 
     // myView will receive both $foo and $hello 

    } 
} 
+0

確定,所以基本上是那裏有那麼的沒辦法一個$ data變量被傳遞給視圖,以作爲函數內部和外部的變量組合,但在同一個類中?正確? –

+0

你應該可以做到這一點。舉起時,我舉了一個例子。 – xbonez

+0

@DanielWhite:添加了一個編輯。這是否回答你的問題? – xbonez

相關問題