繁体   English   中英

为什么CodeIgniter以数组的形式返回SQL查询,且其中包含一个对象?

[英]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

Codeigniter-生成查询结果

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM