CI在foreach循环中给出未定义的变量

时间:2014-01-11 19:05:20

标签: php codeigniter-2

我在网上关注从CI模型中检索数据的示例。我在这里寻找答案,因为我的问题似乎很容易,但我尝试的每个例子仍然给我消息:未定义变量:更新消息:为foreach提供的参数无效。有任何想法吗?

型号:

function list_updates(){ 
    return this->db->get('updates')->result();
}

控制器

public function index()
{

    $this->load->model('updates_model');

    $data = array();
    $data['updates'] = $this->updates_model->list_updates(); // if i do print_r before render, the data displays in the view (but not formatted correctly)

    $this->_render('pages/publicfeed', $data);
}

查看

<div id="message_count" style="margin-left:40%;">
    <?php 
        foreach ($updates as $up){
            echo $up->update;
        }
    ?>
</div>

2 个答案:

答案 0 :(得分:0)

在您的视图文件中,您没有检查$updates的记录位置。当你没有记录时,我认为你正面临着这个问题。所以在经过foreach lop之前先检查一下。

CI result()函数将返回对象列表。因此,您可以使用count方法来检查记录计数。

<div id="message_count" style="margin-left:40%;">
    <?php 
       if(count($updates)>0)
       {
        foreach ($updates as $up){
            echo $up->update;
        }
      }
      else
      {
        echo "<p>No Records found</p>";
      }
    ?>
</div>

答案 1 :(得分:0)

您需要从查询中获取数据作为数组。

在模型中将result()更改为result_array()$up->update$up['column_name']其中column_name是表格中列的名称,例如update_idupdate_title等等。

这应该这样做。