您好我是codeigniter框架的新手,我需要帮助从转发到我视图的数组中获取一些数据。 在我的控制器的方法中,我是负载模型谁从db返回数据数组,而不是我将数据传递给我的视图,看起来像这样:
function deleteAccount($data){
$this->load->model('model_admin');
$dataFromModel = array();
if($query = $this->model_admin->retrieveAccount ($data)){
$dataFromModel['records'] = $query;
$this->load->view('admin/test',$dataFromModel);
} else {
echo "No data was returned";
}
}
在我看来,我设法检索这些数据并像这样回应:
<?php
echo "TEST page<br/>";
if(isset($records)) {
foreach ($records as $row) {
echo $row->username;
}
} else {
echo "No data";
}
?>
但我确信,如果我从db检索数据,它可能是一行或根本没有行,所以在我的视图页面中,我希望在某种程度上不使用foreach循环来回显该数据,例如: / p>
echo $records->username;
或:
echo $records[0]; //because it is the first argument in line
但是两种方式都会引发错误:
1 - 第一种情况:试图获得非对象的属性
2 - 第二种情况:类stdClass的对象无法转换为字符串
这是我的模特:
function retrieveAccount($data){
$query = $this->db->get_where('table_users', array('username' => $data[2]));
return $query->result(); }
有人可以帮助我,并告诉我如何检索这些数据。
答案 0 :(得分:1)
如果您想使用 $ records-&gt;用户名,这意味着 $ records 必须只包含一个值。在这种情况下,不要使用 $ query-&gt; result(),而是在模型代码中使用 $ query-&gt; row()。
您无法回显stdClass对象。 $ records [0]是stdClass对象,因此Php给出了这个错误。相反,这将起作用
echo $ records [0] - &gt; username