Php 为foreach()提供的参数无效

Php 为foreach()提供的参数无效,php,codeigniter,foreach,Php,Codeigniter,Foreach,我收到错误消息: 在我的视图中,foreach()的参数无效 我想显示但获取错误为foreach()提供的无效参数。我是Codeigniter的新手,不知道如何解决这个问题 型号 function get_berita($WHERE=array()) { $this->db->select('id_berita,judul_berita,content,tanggal'); $this->db->where($WHERE); $this->d

我收到错误消息:

在我的视图中,foreach()的参数无效

我想显示但获取错误为
foreach()
提供的无效参数。我是Codeigniter的新手,不知道如何解决这个问题

型号

function get_berita($WHERE=array())
{
    $this->db->select('id_berita,judul_berita,content,tanggal');
    $this->db->where($WHERE);
    $this->db->order_by('id_berita','asc');
    $query = $this->db->get('berita_ukm');
    return $query -> result_array();
}
控制器

function index()
{
    $this->data['berita'] = $this->mberita->get_berita();
    $this->data['title'] ='UKM Taekwondo | berita';
    $this->data['orang'] = $this->mlogin->dataPengguna($this->session->userdata('username'));
    $this->data['contents'] = $this->load->view('admin/berita/view_berita', '', true);          
    $this->load->view('template/wrapper/admin/wrapper_ukm',$this->data);
}
查看

<tbody>
<?php
$no=1;
foreach ($berita as $dt) {
   echo "
    <tr>
    <td>$dt[id_berita]</td>
    <td>$dt[tanggal]</td>
        <td>$dt[judul_berita]</td>
    <td>$dt[content]</td>
    <td><a class='ui tiny blue edit button' href='".base_url()."index.php/admin/berita/edit/$dt[id_berita]'><i class='edit icon'></i></a>
    <a class='ui tiny blue edit button' href='".base_url()."index.php/admin/berita/delete/$dt[id_berita]'><i class='trash icon'></i></a></td>
    </tr>
   ";
   $no++;
}
?>
</tbody>


请帮我做什么。谢谢。

您的模型返回了一个空集,但foreach需要一个数组才能工作。。 通过在foreach之前嵌入if条件,可以忽略此错误

    if($berita){
      foreach ($berita as $dt) {
        echo "<tr>
                  <td>$dt[id_berita]</td>
                  <td>$dt[tanggal]</td>
                  <td>$dt[judul_berita]</td>
                  <td>$dt[content]</td>
                  <td><a class='ui tiny blue edit button' href='".base_url()."index.php/admin/berita/edit/$dt[id_berita]'><i class='edit icon'></i></a>
                  <a class='ui tiny blue edit button' href='".base_url()."index.php/admin/berita/delete/$dt[id_berita]'><i class='trash icon'></i></a></td>

              </tr>";
          $no++;
     }
}
if($berita){
foreach($berita作为$dt){
回声“
$dt[id_berita]
$dt[tanggal]
$dt[朱杜尔贝里塔]
$dt[内容]
";
$no++;
}
}

您的模型不返回任何值。
在将数据发布到控制器之前进行检查
在您的型号中

function get_berita($WHERE=array())
{
    $this->db->select('id_berita,judul_berita,content,tanggal');
    $this->db->where($WHERE);
    $this->db->order_by('id_berita','asc');
    $query = $this->db->get('berita_ukm');
    return $query -> result_array();
}

请显示什么
var_dump($this->mberita->get_berita())提供给您。我尝试了此操作,但结果是数组(0){}。你能告诉我为什么使用数组(0)吗?谢谢这意味着它是一个空数组。这就是为什么你会收到这个错误。foreach需要至少包含一个元素的数组。谢谢,但仍然存在错误未定义变量:berita。如何解决这个错误?感谢您在控制器上修改此行$this->data['contents']=$this->load->view('admin/berita/view\u berita',$this->data,true);我尝试var_dump get_berita,但数组(0){}。怎么办?你的数据库里有数据吗?此外,在控制器中,您还向“get_berita($WHERE)”模型$this->data['berita']=$this->mberita->get_berita(??)”传递了一个空参数;