我正在尝试在视图中回显我的数据库的一个字段,但是我收到了错误:
消息:尝试获取非对象的属性
文件名:views / admin_view_report.php
行号:7
当我回显整个阵列时,它运行得很好。我找不到什么是错的。
我的控制器的一部分:
function index(){
$this->load->model('viewreport');
$data['records']=$this->viewreport->getAllByChk();
$this->load->view('admin_view_report',$data);
}
我的部分模型:
function getAllByChk(){
$q = $this->db->get('info');
if ($q->num_rows()>0){
foreach ($q->result_array() as $row)
{
$data[]=$row;
}
return $data;
}
}
观点:
<?php foreach($records as $row):?>
<?php echo $row->subject; ?>
<?php endforeach;?>
如果我只打印data['records']
,则会提供以下输出
Array
(
[0] => Array
(
[id] => 1
[address] => 11/siddeshwari
[area] => sid
[lat] => 21
[lng] => 21
[subject] => hello
[problem] => lots of problem
[image] =>
[time] => 2011-08-11 23:49:29
[register_id] => 1
[category_id] => 1
[city_city_id] => 1
[status_status_id] => 0
)
[1] => Array
(
[id] => 2
[address] => 134 banani
[area] => banai
[lat] => 1223
[lng] => 2133
[subject] => not working
[problem] => yesproblem problem problem
[image] =>
[time] => 2011-08-12 01:09:44
[register_id] => 1
[category_id] => 2
[city_city_id] => 1
[status_status_id] => 0
)
)
但是当我尝试打印问题或主题时,它只会出错。
答案 0 :(得分:2)
result_array()
返回一个数组数组,而不是对象。
在您看来:
$row->subject
应该是:
$row['subject']
如果您希望$ row成为对象,请将result_array()
更改为result()
。这将为您提供一系列对象。
foreach ($q->result_array() as $row)
也是多余的。
只是将$q->result_array()
复制到$data
。
您不需要这样做,只需return $q->result_array();
。
答案 1 :(得分:1)
我会做以下
function getAllByChk()
{
$q = $this->db->get('info');
if ($q->num_rows() > 0)
{
return $data->result();
}
return false;
}
然后在视图中
if($records) :
foreach($records as $row) :
print_r($row);
endforeach;
else:
echo 'No Records';
endif;
答案 2 :(得分:0)
function getAllByChk(){
$data = array();
//remove if
此外,以对象$q->result()
或echo $row['subject']
答案 3 :(得分:-1)
您也可以返回结果()
function getAllByChk(){
$q = $this->db->get('info');
if ($q->num_rows()>0){
foreach ($q->result_array() as $row)
{
$data[]=$row;
}
return $data->result();
}
}