我想知道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);
让我知道..
答案 0 :(得分:2)
不要了解CodeIgniter中的命名方式;有些东西的命名方式可能让大多数人感到困惑。
在我看来,您希望在模型中实现业务逻辑,而在CodeIgniter中,在库中执行此操作通常更为清晰。然后,您只能将CI_Model类用于数据访问层。
在您的情况下,它将是:
/libraries/User.php&lt; - 用户“模型”
/models/usermodel.php&lt; - db操作,其中user
表是主表
注意:您可能会发现将控制器和库中的应用程序逻辑移出也可以更轻松地测试,组织和重用代码。