我在名为 'Profile_model' 的 codeigniter 中构建了一个模型,它包含以下 sql 查询,并且应该返回 user_name具有给定 id 的用户('userpdata' 是包含此信息的表):
public function get_username($id)
{
$query = $this->db->select('user_name')
->where('id', $id)
->get('userpdata');
return $query->result();
}
我已经像这样从 Controller 传入了当前用户的 $id(模型被称为'profile'):
$userId = strval($this->ion_auth->get_user_id());
$data = array(
'username' => $this->profile->get_username($userId)
);
$this->load->view('user/profile', $data);
用户/个人资料 View :
<?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
的对象。您可以在 Controller 中获取它的值。
$user = $this->profile->get_username($userId);
$data = array(
'username' => $user->user_name
);
或者您可以在不更改 Controller 的情况下在 View 中获取它并使用此 $username->user_name
。
关于php - 为什么 CodeIgniter 将我的 SQL 查询作为一个数组返回,其中包含一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34230609/