返回CodeIgniter 3中的模型对象数组而不是数组数组

时间:2017-05-16 03:39:06

标签: php codeigniter

我有一个CodeIgniter模型:

<?php
class Person_model extends CI_Model {
    public function __construct() {
        $this->load->database();
    }

    public function list_persons() {
        $query = $this->db->get('persons');
        return $query->result_array();
    }

    public function foobar() {
        return 'Custom function here';
    }
}
?>

函数list_persons()非常自我解释。它从persons数据库表中获取所有结果。

目前它将结果返回到数组列表中,如下所示:

array(2) {
  [0] => array(3) {
    ["id"] => string(1) "1"
    ["first_name"] => string(6) "Test 1"
  }
  [1] => array(3) {
    ["id"] => string(1) "2"
    ["first_name"] => string(6) "Test 2"
  }
}

是否可以让函数list_persons()返回:

array(2) {
  [0] => Person_model {
    "id" => 1
    "first_name" => "Test 1"
  }
  [1] => Person_model {
    "id" => 2
    "first_name" => "Test 2"
  }
}

这样我就可以使用我在Person_model中编写的自定义函数,例如:

foreach($this->person_model->list_persons() as $person) {
    echo $person->foobar();
}

提前致谢。

1 个答案:

答案 0 :(得分:6)

更新您的list_person()方法(使用$query->result()):

public function list_persons() {
    $query = $this->db->get('persons');
    return $query->result('Person_model');
}