[英]Why does CodeIgniter return my SQL query as an array, with an object inside?
我在codeigniter中构造了一个名为'Profile_model'的模型 ,该模型包含以下sql查询,并应返回具有给定id的用户的user_name ( “ userpdata”是包含此信息的表):
public function get_username($id)
{
$query = $this->db->select('user_name')
->where('id', $id)
->get('userpdata');
return $query->result();
}
我已经从控制器中传入了当前用户的$ id,如下所示(模型称为'profile' ):
$userId = strval($this->ion_auth->get_user_id());
$data = array(
'username' => $this->profile->get_username($userId)
);
$this->load->view('user/profile', $data);
用户/个人资料视图:
<?php
print_r($username);
?>
这将返回字符串:
数组([0] => stdClass对象([user_name] => hish))
这似乎是一个包含对象的数组。 如何仅检索user_name'hish ' ?
更改$query->result();
到$query->row();
这样就不会得到数组。 result()
方法返回一个行数组,每个行都是一个对象。 row()
方法返回结果集的第一个对象。
public function get_username($id)
{
$query = $this->db->select('user_name')
->where('id', $id)
->get('userpdata');
return $query->row();
}
您将最终得到包含属性user_name
的对象。 您可以在控制器中获取它的值。
$user = $this->profile->get_username($userId);
$data = array(
'username' => $user->user_name
);
或者,您可以在视图中获取它而无需更改控制器,并使用此$username->user_name
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.