数组末尾的意外字符从控制器返回到代码点火器中的视图


Unexpected character on the end of array returned from controller to view in codeigniter

我的代码点火器视图中出现了一个奇怪的问题。在我使用codeigniter的webapp中,我将从codeignite器模型返回的行数组发送到控制器,并从那里发送到视图。我的问题是,当我在视图中打印数组时,在数组的末尾会得到一个1。它看起来如图所示:

Array ( [0] => stdClass Object ( [id] => 12 [item_code] => code1 [item_name] => part [brand] => qwerty [quantity] => 3 [retail_price] => 123 [cost] => 145 [alert_quantity] => 10) ) 1

即使我没有从模型中返回行,当我计算数组的计数时,我仍然会得到这个1。我不明白怎么了。我被困在这里两天了。

这是我的代码:

型号:product_Model.php

public function alertproducts()
{
$myQuery = "select * FROM tab_products";
$q = $this->db->query($myQuery);
if( $q->num_rows() > 0 )
{
foreach (($q->result()) as $row)
{
$qty=$row->quantity;
$alertqty=$row->alert_quantity;
if($qty<=$alertqty)
{
$id[]=$row;
}
}
if(!empty($id))
{
return $id;
}
}
return FALSE;
}

控制器:product.php

public function alertproduct()
{
$data['alertproduct']= $this->product_model->alertproducts();
$this->load->view('commons/header');
$this->load->view('productalerts',$data);
$this->load->view('commons/footer');
}

有人能帮我找出哪里出了问题吗。提前谢谢。

末尾的1表示您很可能已响应print_r。请尝试使用var_dump。。还可以将SQL查询更改为:SELECT * FROM tab_products WHERE quantity <= alert_quantity,或者更好地使用Codeigniter的活动记录/查询生成器,其方式更简洁,如

public function alertproducts() {
    $this->db->select();
    $this->db->from("tab_products");
    $this->db->where("quantity <= alert_quantity");
    $q = $this->db->get();
    if ($q->num_rows() > 0) {
        return $q->result_array();
    }else{
        return false;
    }
}