How to prepare a model to return json_encode resul

2019-09-19 11:02发布

问题:

Here is my Model in Codeigniter with foreach loop in it.

Function.

  public function get_projectcount($qup) {
    echo'[';
    foreach ($qup as $row) {
        $id = $row['myid'];
        $this->db->select('*');
        $this->db->from('projects');
        $this->db->where(array('projects.accountId' => $id));
        $query = $this->db->get();

        $projects_count = count($query->result());
        echo '{"myid":"' . $row['myid'] . '",';
        echo '"total_projects":"' . $projects_count . '"},';
    }
    echo']';
}

I want this as a result of json_encode.

回答1:

You should change your function to:

public function get_projectcount($qup) {
    $result = array();
    foreach ($qup as $row) {
        $id = $row['myid'];
        $this->db->select('*');
        $this->db->from('projects');
        $this->db->where(array('projects.accountId' => $id));
        $query = $this->db->get();

        $projects_count = count($query->result());
        $result[] = array("myid" => $row['myid'], "total_projects" => $projects_count);
    }
    return json_encode($result);
}