2011-12-09 24 views
0

我遇到了一個問題,我一直打在牆上,我需要一些關於此方面最好方法的建議。我得到一個從我的模型中獲取數據的循環,但是在那個循環中,我必須根據庫來驗證它,但我似乎找不到一個好的方法來做到這一點。Codeigniter 2在循環中使用庫

例如,我得到了類似於這樣的模型方法:

public function GetUserList() { 

    $this->db->select('username, email, joindate, rank')->from('user'); 
    $query = $this->db->get(); 

    //loop through data and bind to an array. 
    foreach ($query->result() as $row) { 
     $users[] = $row; 
    } 

    return $users; 
} 

加載網頁時,用戶將看到用戶和他們的信息的列表,但有些用戶不希望自己的電子郵件要顯示的地址,我們必須使用用戶庫來獲取該用戶的設置,並查看是否應該隱藏該電子郵件。

我發現的唯一解決方案就是使用輔助函數作爲繞道,但我覺得這會在未來複制我喜歡的東西。

我發現的另一個問題是一旦你創建了庫,它沒有重新啓動對象作爲一個新的(像它在香草PHP中)。

我希望有人有一個很好的方法來解決像這樣的挫折。

最後一項,如果它有所作爲,我也使用Twig來處理我的觀點。

回答

1

您不需要使用load()函數加載每個庫文件。函數load()用於在全局(CI)名稱空間中加載單個實例。如果你想使用一組對象,你應該使用require這個文件,就像你通常使用PHP一樣。

+0

我認爲會是這樣。但仍然如何過濾數據? – Eman

+0

在您的查詢中進行連接可能是最好的選擇。 – minboost

+0

好吧,我會給它一個鏡頭。 – Eman

0

如果可能,我會親自加入您的偏好表。這樣你就不必爲每個用戶做一個單獨的查詢。