我的模型页面中有这个代码:
public function getAll($researcherpk){
$this->db->select('*');
$this->db->from('research');
$this->db->join('researcher', 'researcher = lastname');
$this->db->where('researcherpk', $researcherpk);
return $this->db->get()->row_array();
Run Code Online (Sandbox Code Playgroud)
但是当我在View页面上使用它时
Age: <?php echo $data['age'];?> // this work
<?php foreach ($data as $v){ ?> //this has an error
<tr>
<td><?php echo $v->title?></td>
<td><?php echo $v->track_records?></td>
</tr>
<?php } ?>
Run Code Online (Sandbox Code Playgroud)
我收到错误:
Message: Trying to get property of non-object
Run Code Online (Sandbox Code Playgroud)
在我的控制器页面中:
public function researcher($researcherpk){
$this->load->model('ResearchModel');
$result['data'] = $this->ResearchModel->getAll($researcherpk);
$this->load->view('researcher',$result);
}
Run Code Online (Sandbox Code Playgroud)
您认为这里的问题是什么?对于它或更改,我的替代解决方案是什么?
将您的回报更改为:
return $this->db->get()->result_array();
Run Code Online (Sandbox Code Playgroud)
然后尝试使用$v['title']和$v['track_records']
<?php foreach ($data as $v): ?>
<tr>
<td><?php echo $v['title']?></td>
<td><?php echo $v['track_records']?></td>
</tr>
<?php endforeach; ?>
Run Code Online (Sandbox Code Playgroud)
查看codeigniter文档以了解更多信息.
result_array():
此函数将查询结果作为纯数组返回
这就是你想要的.
你混合它:
row_array():
此函数返回单个结果行.如果您的查询有多行,则只返回第一行.
这不是你想要的.