简体   繁体   English

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

[英]Invalid argument supplied for foreach()

I am getting error message: 我收到错误消息:

Invalid argument for foreach() in my View. 我的视图中的foreach()参数无效。

I want to display but getting error Invalid argument supplied for foreach() . 我想显示但出现错误为foreach()提供了无效的参数。 I am a newbie in Codeigniter and couldn't really figure out how to solve this. 我是Codeigniter的新手,无法真正解决该问题。

Model 模型

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();
}

Controller 控制者

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);
}

View 视图

<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>

Please help me what to do. 请帮我该怎么办。 Thank you. 谢谢。

your model returning an empty set thats but foreach needs an array to work .. you can ignore this error by embed an if condition before foreach ... 您的模型返回一个空集,但foreach需要一个数组来工作..您可以通过在ifeach之前嵌入一个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++;
     }
}

Your model return no values. 您的模型不返回任何值。
do a check before posting the data to your controller 在将数据发布到控制器之前进行检查
in your model 在您的模型中

 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();

 }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM