【问题标题】:Invalid argument supplied for foreach() - Codeignitor为 foreach() 提供的参数无效 - Codeigniter
【发布时间】:2021-11-24 13:05:39
【问题描述】:

我在尝试使用 foreach 循环获取“id”列时收到错误“为 foreach() 提供的参数无效”: Codeignitor 版本:3.0.1

控制器:

<?php

class Users extends CI_Controller {
    
    public function show(){
        
        $this->load->model('user_model');
        $result = $this->user_model->get_users();
        foreach($result as $object){
            echo $object->id;
         }
    }
}

?>

型号:

<?php

class User_model extends CI_Model {
    
    public function get_users(){
    $this->db->get('users');
    }
}


?>

我检查了表名和列名是否正确。

【问题讨论】:

  • 不应该public function get_users()返回一些可以使用的东西吗?

标签: php codeigniter


【解决方案1】:
<?php

class User_model extends CI_Model {
    
    public function get_users(){
    $data=$this->db->get('users');
    return $data->result();
    }
}


?>

【讨论】:

    【解决方案2】:

    你可以在模型中使用 result() 或 result_array() 来获取

    你的情况

    public function get_users(){ // model
        $data=$this->db->get('users');
        return $data->result();
    }
    
    public function show(){ // controller
        
        $this->load->model('user_model');
        $result = $this->user_model->get_users();
        foreach($result as $object){
            echo $object->id;
         }
    }
    

    上述方法以对象数组的形式返回查询结果,失败时返回空数组。

    以下一种方法将查询结果作为纯数组返回,或者在没有结果时返回空数组。

    你也可以这样做

    public function get_users(){ // model
        $data=$this->db->get('users');
        return $data->result_array();
    }
    
    public function show(){ // controller
        
        $this->load->model('user_model');
        $result = $this->user_model->get_users();
        foreach($result as $object){
            echo $object['id'];
         }
    }
    

    更多详情click here

    【讨论】:

      【解决方案3】:

      需要返回result()或者result_array()

      <?php
        class User_model extends CI_Model {
          public function get_users(){
          $data=$this->db->get('users');
          return $data->result(); // or  return $data->result_array();
          }
         }
      ?>
      

      对于结果数组,您需要 echo $object['id']; 并且对于 result() 与您打印的相同。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多