2014-11-25 35 views
0

說我聲明一個類:笨查詢結果(類)包括非屬性字段

class Abc extends CI_Model { 
    public $name; 
    public function __construct() { 
    parent::__construct(); 
    } 
} 

然後我做

$this->db->get('my_table')->result('Abc')` 

結果是陣列狀(json_encoded):

[{"id": 1, "name": "John", "age": 25}, 
{"id": 2, "name": "Diana", "age": 35}, 
{"id": 3, "name": "Robert", "age": 27}] 

不應該每個數組項都只包含「name」,就像在Abc類中聲明的一樣嗎?由於「id」和「age」字段來自數據庫表。謝謝。

回答

1

Codeigniter模型不會像這樣工作,因爲它沒有ORM(我個人認爲它是CI的許多缺陷之一,因爲它不像Laravel的雄辯或Symfony的教義那樣真正實施MVC)。相反,他們利用他們所稱的活動記錄模式的實現。

如果你想要得到的只是名字,你必須調用:

$this->db->select('name'); 

打電話之前get()

CI車型只是多一個地方,你可以放在一起相關的數據庫操作。我認爲存儲庫是一個更合適的名稱。