【发布时间】:2021-09-01 03:56:50
【问题描述】:
我正在使用 codeigniter php,我需要创建一个 api rest,它返回一个包含书籍模型的数组,为此我在控制器中创建了一个名为 api2.php 的文件,在这里我输入了 rest 调用的返回发布,所以 api2.php 调用。问题是调用返回的json格式不正确,应该是另一种格式。
Json Now(不正确): https://gist.github.com/riccardopirani/8b41fe97896380e64b5df1f92f99b954
正确的 json:
{
[
id: "2",
desc: "sss",
..
],
[
id: "3",
desc: "sss",
..
],
}
控制器/Api2.php:
<?php
class Api2 extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->model('Book_model');
}
function index() {
header('Content-Type: application/json');
$values = $this->Book_model->get_all_books();
$book_list = [];
foreach ($values as $row)
{
$book_list[$row['id']] = $row['id'];
$book_list[$row['cat']] = $row['cat'];
$book_list[$row['descrizione']] = $row['descrizione'];
$book_list[$row['titolo']] = $row['titolo'];
$book_list[$row['prezzo']] = $row['prezzo'];
$book_list[$row['autore']] = $row['autore'];
$book_list[$row['order']] = $row['order'];
}
echo json_encode($book_list);
}
}
模型/Book_model.php:
<?php
class Book_model extends CI_Model
{
function __construct()
{
parent::__construct();
}
/*
* Get book by id
*/
function get_book($id)
{
return $this->db->get_where('books',array('id'=>$id))->row_array();
}
/*
* Get all books
*/
public function get_all_books()
{
$this->db->order_by('id', 'desc');
return $this->db->get('books')->result_array();
}
/*
* function to add new book
*/
function add_book($params)
{
$this->db->insert('books',$params);
return $this->db->insert_id();
}
/*
* function to update book
*/
function update_book($id,$params)
{
$this->db->where('id',$id);
return $this->db->update('books',$params);
}
/*
* function to delete book
*/
function delete_book($id)
{
return $this->db->delete('books',array('id'=>$id));
}
}
【问题讨论】:
标签: php json codeigniter codeigniter-3