【问题标题】:CodeIgniter error Invalid argument supplied for foreach()CodeIgniter 错误为 foreach() 提供的参数无效
【发布时间】:2013-02-02 21:40:56
【问题描述】:

我正在尝试从数据库中选择数据,但出现此错误:

  A PHP Error was encountered        
    Severity: Warning
    Message: Invalid argument supplied for foreach()
    Filename: controllers/hello.php
    Line Number: 24

控制器:

<?php
    // system/application/controllers/hello.php

    class Hello extends CI_Controller {

       public function __construct()
       {
            parent::__construct();
       }

       function show_data() {

            $query = $this->load->model('user');
            foreach ($query->result() as $value) {
                echo $value -> username;
                echo $value -> password;
                echo $value -> first_name;
                echo $value -> last_name;
            }
       }
    }
?>

型号:

class User extends CI_Model {

    function __construct()
    {
        // Call the Model constructor
        parent::__construct();
    }

    function show()
    {
        $query = $this->db->get('user', 10);
        return $query->result();
    }
}

我正在看这个教程:https://www.codeigniter.com/user_guide/database/results.html

错误是什么意思?

【问题讨论】:

    标签: php database codeigniter


    【解决方案1】:

    你的控制器功能应该是这样的,

    function show_data() {
        $this->load->model('user');
        $query = $this->user->show();
        foreach($query as $value) {
            echo $value->username;
            echo $value->password;
            echo $value->first_name;
            echo $value->last_name;
        }
    }
    

    查看here 以了解如何加载模型。

    【讨论】:

    • 我只是补充一点,这是一个太基本的错误,所以为了以后避免这些,确保你在 CI 文档上做介绍教程,它真的很有帮助。
    • 谢谢,你知道今天我从 CI 开始,所有的想法一开始都很难。
    【解决方案2】:

    您调用 $query->result() 两次,一次在模型中,一次在循环中,您应该只调用一次。那只是一个错误。

    另一个更重要的是您启动模型(并将其分配给变量,这不是必需的,并且是一种不好的做法),并且您不从模型中调用该函数。

    所以首先你必须在控制器中启动你的模型(如果你打算更频繁地使用这个模型,你的函数或构造):$this->load->model('my_model');

    然后你必须访问你想使用的函数:$this->my_model->my_model_function()

    【讨论】:

    • 我在 foreach 中删除“->reult()” 现在我明白了 -> 遇到 PHP 错误 严重性:警告消息:为 foreach() 提供的参数无效 文件名:controllers/hello.php 行数量:24
    • 感谢帮助问题已解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2013-04-04
    • 1970-01-01
    相关资源
    最近更新 更多