2013-05-21 16 views
0

我想知道CI_Model是否更像數據庫層,或者我真的可以像使用模型一樣使用它。CodeIgniter:CI_Model的實例

對我來說,它看起來非常醜陋做這樣的事情:

for($i = 0; $i < 3; $i++){ 
    $this->load->model('user_model', $i); 
    $this->user_model->name = $this->generate_name(); 
    $this->user_model->age = $this->generate_age(); 
} 

//... and somewhere else use 

for($i = 0; $i < 3; $i++){ 
    $this->$i->save(); //<-- REALLY UGLY, using the $i 
} 

有另一種方式來存儲你的模型,或者是一個更好的辦法只有創建一個非CI模型。我最終會是這樣的:

$user = new User($this->generate_name(), $this->generate_age()); 
$this->user_model->saveUser($user); 

讓我知道..

回答

2

沒有得到趕上事情是如何在笨命名;有些東西的命名方式可能會讓大多數人感到困惑。

這聽起來像你想在你的模型中實現業務邏輯,而在CodeIgniter中,通常在庫中執行業務邏輯更清晰。然後,您只能將CI_Model類用於數據訪問層。

在你的情況,這將是: /libraries/User.php < - 用戶 「模式」 /models/usermodel.php < - DB操作,其中user表主表

注意:您可能會發現將應用程序邏輯從控制器移出到庫中也使測試,組織和重用代碼變得更加容易。