0

我想知道 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);

让我知道..

4

1 回答 1

2

不要纠结于 CodeIgniter 中事物的命名方式;有些东西的命名方式可能会让大多数人感到困惑。

在我看来,您想在模型中实现业务逻辑,而在 CodeIgniter 中,在库中执行此操作通常更简洁。然后,您可以仅将 CI_Model 类用于数据访问层。

在您的情况下,它将是: /libraries/User.php <-- 用户“模型” /models/usermodel.php <-- db 操作其中usertable 是主表

注意:您可能会发现将应用程序逻辑从控制器中移到库中还可以更轻松地测试、组织和重用代码。

于 2013-05-22T01:42:33.490 回答