我在codeigniter中构建了一个名为'Profile_model'的模型,其中包含以下sql查询,并且应该返回 user_name 具有 id 的用户('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] =&gt; stdClass对象([user_name] =&gt; hish))
这似乎是一个包含对象的数组。如何只检索 user_name 'hish'?
答案 0 :(得分:0)
将$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
。