php - 为什么 CodeIgniter 将我的 SQL 查询作为一个数组返回,其中包含一个对象?

标签 php mysql codeigniter

我在名为 '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

Codeigniter - Generating Query Results

关于php - 为什么 CodeIgniter 将我的 SQL 查询作为一个数组返回,其中包含一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34230609/

相关文章:

mysql - OSX 10.9.5 brew 安装 mysql - "The post-install step did not complete successfully"

php - 从动态创建的输入字段插入正确的数据

Mysql子查询顺序

mysql - (按位)MySQL 中的超集和子集

php - CodeIgniter 多文件上传不起作用

database - 通过命令行运行 Controller 。连接数据库的问题

PHP 检查用户是否是管理员/用户并显示按钮

php - Laravel 模型工厂和 Eloquent;设定日期

php - 使用 PHP、MYSQL、GROUP_CONCAT 和 JOIN 进行空间搜索

PHP/CodeIgniter关系型数据库数组搭建