如何在CodeIgniter中示例化同一对象的多个示例?

q9rjltbz  于 4个月前  发布在  其他
关注(0)|答案(4)|浏览(63)

使用传统的OOP,我会(或者可以,更确切地说)创建一个表示User的模型/对象,并具有反映nameidjob title等属性。
然后,我可以创建该对象的新示例并将其分配给变量,如果我循环遍历结果集,我可以为每个结果集创建一个示例。使用CodeIgniter,这似乎是不可能的,因为这样做:

$this->load->model('User');

字符串
示例化它,并将其放置在$this->user上使用。
有没有更传统的方式来使用模型作为对象呢?但又不需要破解CodeIgniter的方式?
我知道你可以用$this->load->model('User', 'fubar')把东西赋给一个不同的对象名,但它不如简单地把一个示例赋给一个变量那样动态。
感谢大家的回答。我想我错过了使用“CodeIgniter Way”的一个重要部分,但我刚刚浏览了一个贡献的库,使用相同的示例(分配给CodeIgniter命名空间)的做法,但每次使用后清除示例变量,似乎是一个很好的工作方式,消除了我的保留意见。

7xllpg7q

7xllpg7q1#

你不必使用load()函数,你可以像平常一样使用require_oncenew User()
load()应该只用于全局CodeIgniter命名空间中你想要的东西。正如你所看到的,如果你试图将它用于所有东西,它会很快被污染。

dba5bblo

dba5bblo2#

你仍然可以像平常一样在CodeIgniter中示例化对象。

$user1 = new Users(); // Instantiate
$user2 = new Users();

$user1->property;     // Using it
$user2->method()

unset($user1);        // Unset it when done for good practice.

字符串

oymdgrw7

oymdgrw73#

是的,JustAnil和minboost说的是正确的。

$this->mymodel->mymethod();

字符串

9nvpjoqh

9nvpjoqh4#

// User_model.php

public function get_users() {
    $query = $this->db->get('mytable');
    return $query->result();
}

// User_controller.php
public function show_users() {
    $data['users'] = $this->User_model->get_users();
    $this->load->view('show_users', $data);
}

// show_users.php  (view file)
$x = 0;
foreach ($users as $user) {
    $x = $user;
    $x++;
}

字符串

相关问题