为foreach()提供的参数无效

时间:2014-03-25 10:20:16

标签: 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->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>

请帮我做什么。谢谢。

2 个答案:

答案 0 :(得分:0)

你的模型返回一个空集,但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++;
     }
}

答案 1 :(得分:0)

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

 function get_berita($WHERE=array())
 {

  $query = $this->db->select('id_berita,judul_berita,content,tanggal')
                    ->from('berita_ukm')
                    ->where($WHERE)
                    ->order_by('id_berita','asc')
                    ->get();

  $query->num_rows() > 0 ? return $query->result_array() : array();

 }