Php 如何在Codeigniter中响应json字符串
我有一个名为users的数据库表,其中有一些键“userid,username,age”,这个表中还有一些记录,我想像json一样获取它们,请看这个Php 如何在Codeigniter中响应json字符串,php,mysql,json,api,codeigniter,Php,Mysql,Json,Api,Codeigniter,我有一个名为users的数据库表,其中有一些键“userid,username,age”,这个表中还有一些记录,我想像json一样获取它们,请看这个 { "status":"1", "msg":"success", "userlist":[ { "userid":"1", "username":"chard", "age":"22" }, {
{
"status":"1",
"msg":"success",
"userlist":[
{
"userid":"1",
"username":"chard",
"age":"22"
},
{
"userid":"2",
"username":"rose",
"age":"21"
},
{
"userid":"3",
"username":"niki",
"age":"25"
}
]
}
user_model.php文件,我写
function get_users()
{
$query = $this->db->get('users');
return json_encode($query->row_array());
}
function index_get()
{
$this->load->model('users_model');
$query = $this->users_model->get_users();
echo $query;
}
php控制器文件,我写的
function get_users()
{
$query = $this->db->get('users');
return json_encode($query->row_array());
}
function index_get()
{
$this->load->model('users_model');
$query = $this->users_model->get_users();
echo $query;
}
我可以得到结果,但这是一个错误的结果,只有这个
{ "userid":"1", "username":"chard", "age":"22" }
那么我应该如何解决这个问题呢?尝试
$query->result\u array()
而不是$query->row\u array()
您的模型功能更改它:
function get_users()
{
$query = $this->db->get('users');
return $query->result_array();
}
在控制器方法中
function index_get()
{
$this->load->model('users_model');
$users = $this->users_model->get_users();
echo json_encode(array(
'status' => 1,
'msg' => 'success',
'userlist' => $users
));
}
试试这个:
function get_users()
{
$query = $this->db->get('users');
return $query->result_array();
}
function index_get()
{
$this->load->model('users_model');
$users = $this->users_model->get_users();
echo json_encode(array(
'status' => 1,
'msg' => 'success',
'userlist' => $users
));
}
我个人更喜欢物品:
$data = $query->result();
echo json_encode($data);
这将返回一个对象数组,而不是数组数组(多维)
您甚至可以将参数值传递给该方法,以将这些对象作为特定类的实例返回:
$data = $query->result('User_model');
我倾向于使用magic常量,在任何情况下,我都会更改类名:
$data = $query->result(__CLASS__);
这样,您就可以在javascript回调中访问对象,如下所示:
var data = yourResponse;
yourResponse.userlist.forEach(function(user){
alert( user.username );
});