【问题标题】:Undefined property: stdClass::$contents in Code Igniter未定义的属性:代码点火器中的 stdClass::$contents
【发布时间】:2014-10-29 06:36:54
【问题描述】:

我正在学习并且正在关注关于数据库选择方法的 CodeIgniter 教程。它的方法之一就是这个。

它的模型文件叫做 data_model.php:

<?php
    class Data_model extends CI_Model{
        function getAll(){
        $this->db->select('title','contents');
        $this->db->from('data');
        $this->db->where('id',1);           
        $q = $this->db->get();

        if ($q->num_rows() > 0){
            foreach($q->result() as $row){
                $data[] = $row;
            }
        }
        return $data;           
    }
}
?>

名为 site.php 的控制器文件

<?php
class Site extends CI_Controller{
    function index(){
        $this->load->model('data_model');
        $data['rows'] = $this->data_model->getAll();
        $this->load->view('home',$data);        
    }   
}
?>

并查看名为 home.php 的文件:

<html>
    <head>
        <title>
        </title>
        <meta http-equiv="Content-Type" content="text/html"; charset=UTF-8>     
    </head>
    <body>
        <div id="container">
            <p>My view has been loaded.</p>         
            <?php foreach($rows as $r) : ?>
            <h1><?php echo $r->title; ?></h1>
            <div><?php echo $r->contents; ?></div>
            <?php endforeach; ?>    
        </div>
    </body>
 </html>

当我尝试在浏览器中运行 localhost/ci/ 时,出现错误提示:

A PHP Error was encountered
Severity: Notice
Message: Undefined property: stdClass::$contents
Filename: views/home.php
Line Number: 13

我的 $contents 变量似乎没有任何价值,但我很确定我的数据库中每个对应条目都有内容。如下图所示:

我哪里做错了?我正在遵循的教程没有遇到错误?为什么我收到此错误?

【问题讨论】:

  • 做 print_r($rows);exit;并在此处发布输出。

标签: php html database codeigniter codeigniter-2


【解决方案1】:

DB活动记录库select()方法只在第一个参数中输入查询字段,可以是数组或字符串,见下文

$this->db->select(array('title','contents'));
//OR
$this->db->select('title,contents');

【讨论】:

    【解决方案2】:

    为你试一试

    <?php
        class Data_model extends CI_Model{
            function getAll(){
            $this->db->select('title,contents');
            $this->db->from('data');
            $this->db->where('id',1);           
            $q = $this->db->get();
    
            if ($q->num_rows() > 0){
                return $q->result(); 
            }          
        }
    }
    ?>
    

    并在查看文件中

    <html>
        <head>
            <title>
            </title>
            <meta http-equiv="Content-Type" content="text/html"; charset=UTF-8>     
        </head>
        <body>
            <div id="container">
                <p>My view has been loaded.</p>         
                <?php foreach($rows as $r) { ?>
                <h1><?php echo $r->title; ?></h1>
                <div><?php echo $r->contents; ?></div>
                <?php } ?>    
            </div>
        </body>
     </html>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-20
      • 2019-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多