从数组中获取数据

时间:2015-09-07 10:11:59

标签: php arrays codeigniter

您好我是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(); }

有人可以帮助我,并告诉我如何检索这些数据。

1 个答案:

答案 0 :(得分:1)

  1. 如果您想使用 $ records-&gt;用户名,这意味着 $ records 必须只包含一个值。在这种情况下,不要使用 $ query-&gt; result(),而是在模型代码中使用 $ query-&gt; row()

  2. 您无法回显stdClass对象。 $ records [0]是stdClass对象,因此Php给出了这个错误。相反,这将起作用

    echo $ records [0] - &gt; username