Codeigniter消息:未定义的propertystdClass :: $我的第一个博客

时间:2012-09-05 09:12:54

标签: php codeigniter

我刚刚开始学习CodeIgnighter,我面临很多问题。

我制作了一个控制器和一个视图,如下所示。

这是我的控制器

<?php
 class Blog extends CI_Controller{

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

function index(){

    $data['title'] = "My First Blog";
    $data['heading'] = "My Blog Heading";
    $data['query'] = $this->db->get('entries');

    $this->load->view('blog_view' ,$data);
}
}

?>

这是我的观点。

<html>
<head>
    <title><?=$title?></title>
</head>
<body>
    <h1><?=$heading?></h1>
    <?php foreach ($query->result() as $row): ?>

        <h3><?=$row->$title?></h3>
        <p><?=$row->$body?></p>

     <hr>
    <?php endforeach;?> 

</body>
</html>

当我执行此操作时,我收到此错误。

PHP Error was encountered
Severity: Notice
Message: Undefined property: stdClass::$My First Blog
Filename: views/blog_view.php
Line Number: 9

现在我不知道这段代码有什么问题。

3 个答案:

答案 0 :(得分:1)

乍一看,在您的视图foreach中,您应该这样做:

<h3><?=$row->title?></h3>
<p><?=$row->body?></p>

答案 1 :(得分:1)

从foreach变量中删除“$”:

<html>
<head>
   <title><?=$title?></title>
</head> 
<body>  
<h1><?=$heading?></h1> 
   <?php foreach ($query->result() as $row): ?>
        <h3><?=$row->title?></h3>
        <p><?=$row->body?></p>
        <hr>
  <?php endforeach;?>
 </body>  
</html>  

答案 2 :(得分:1)

正如其他人所建议您应将$row->$title更改为$row->title 它非常简单

$title是一个包含My的变量,因此当您说$row->$title时,您实际上是在说$row->My这将导致错误