2015-12-05 66 views
0

我需要知道是否可以從模型中的數據庫中獲取數據,並將其與數組進行比較,然後將它們與任何一側的邏輯模型進行比較,然後將它們傳遞給它們控制拉多爾。Codeigniter - 從數據庫中獲取數據並在模型內進行比較

問題:

最好是做到這一點?

您可以像在驅動程序中那樣從模型中獲取數據?

public function get_country($country_id = '') 
{ 
    $this->db->select('id, name'); 
    $this->db->where('id', $country_id); 
    $query = $this->db->get('country'); 
    $query->row_array(); 

    if($query[0]['id'] == 1 && $query[0]['name'] == 'EEUU') { 

    } else { 

    } 
} 

我將不勝感激您的幫助!

回答

2

是的,這是完全可以接受的,許多人會說正確的做法。但是你的代碼不會像所顯示的那樣工作。試試這個...

public function get_country($country_id = '') 
    { 
    //I am using method chaining here... it's more efficient, 
    $query = $this->db->select('id, name') 
     ->where('id', $country_id) 
     ->get('country'); 

    $row = $query->row_array(); //returns a single row 

    if($row['id'] == 1 && $row['name'] == 'EEUU') 
    { 

    } 
    else 
    { 

    } 
    } 

你會發現很多人都認爲Model是所有商業邏輯的地方。很多人談論「胖」模型和「瘦」控制器。

+0

非常感謝您的支持,它完美運作。 –

+0

它如何使用result_array(),這種方式是正確的? $行[0] [「字段]; –

+0

是的,這是有效的。將result_array()想象爲一個充滿row_array()返回的數組。用這行'$ records = $ query-> result_array();'可以很方便地使用循環來處理返回。 'foreach($記錄爲$ row) {$ foo = $ row ['field1']; $ bar = $ row ['field2']; ...}' – DFriend

相關問題