消息:未定义的变量:数据

时间:2011-10-26 15:59:28

标签: php codeigniter

当我尝试在CodeIgniter中运行以下应用程序时,出现以下错误:

A PHP Error was encountered
Severity: Notice
Message: Undefined variable: data
Filename: views/blog.php
Line Number: 1

我一直试图弄清楚将近一个小时,我无法让它发挥作用。我的观点如下:

<?php foreach($data->result() as $row): ?>
<h1><?php echo $row->title; ?></h1>
<p><?php echo $row->post; ?></p>
<?php endforeach; ?>

我的控制器看起来像这样:

<?php
    class Blog extends CI_Controller {  
    public function index()
    {
        $this->load->database();
        $data = $this->db->get('posts');

        $this->load->helper('url');
        $this->load->view('header');
        $this->load->view('blog', $data);
        $this->load->view('footer');
    }
}

任何人都知道如何解决这个问题?

5 个答案:

答案 0 :(得分:5)

答案 1 :(得分:0)

尝试在视图的第一行使用$blog代替$data 我不确定,但您将$data分配给控制器中名为blog的密钥...

答案 2 :(得分:0)

变量必须作为数组内的键值对传递给视图。 Here对此进行了解释。

答案 3 :(得分:0)

答案 4 :(得分:0)

请这样构造您的帖子模型


        public function __construct()
        {
                $this->load->database();

        }




    public function get_posts(){




            $query=$this->db->get('posts');
            return $query->result_array();







    }

    }

和您的帖子控制者


      public function index()
            {

           $data['posts']=$this->Post_model->get_posts();  





        $this->load->view('templates/header');
        $this->load->view('posts/index.php', $data);
        $this->load->view('templates/footer');

}

,然后在您的视图文件中以这种方式回显内容:)


<?php foreach($posts as $post): ?>


<h3><?php echo  $post['post_title'];?></h3>
<small><?php echo  $post['post_date'];?></small>
<p><a href="<?php echo site_url('/posts/'.$post['post_title']);?>">Read more</a></p>

<?php   endforeach;?>