我试图从codeigniter视图返回json数据。但是我的代码没有工作。我已经尝试过本网站提供的所有选项。但我无法从视图中返回json数据 这是控制器代码。
<?php
class Json extends CI_Controller
{
function __construct()
{
parent::__construct();
}
public function index()
{
$this->load->model('get_json');
$data['message']=$this->get_json->get_fruits();
if ($data!== false)
{
$this->load->view('json',json_encode($data['message']));
}
}
}
我的模特
<?php
class get_json extends CI_Model
{
function __construct()
{
parent::__construct();
}
function get_fruits()
{
$sql = "SELECT * FROM fruit where name='Apple'";
$query = $this->db->query($sql);
// Fetch the result array from the result object and return it
return $query->result();
}
}
查看代码:
<?php
$this->output->set_content_type('application/json');
echo $message;
请帮我解决我的代码出错的问题。
这就是我在日志中的内容:
ERROR - 2012-05-11 15:28:40 --> Severity: Notice --> Undefined variable: message C:\xampp\htdocs\ci\system\core\Loader.php(829) : eval()'d code 3
DEBUG - 2012-05-11 15:28:40 --> File loaded: application/views/json.php
答案 0 :(得分:3)
将您的控制器index
方法更改为:
public function index()
{
$this->load->model('get_json');
$data['message']= json_encode($this->get_json->get_fruits());
if ($data!== false)
{
$this->load->view('json',$data);
}
}
你应该好好去:你需要将数组传递给$this->load->view
,而不是编码值。
public function index()
{
$this->load->model('get_json');
$message = $this->get_json->get_fruits();
if ($message !== false)
{
$this->output->set_content_type('application/json');
echo json_encode($message);
}
}
清洁工,将所有东西放在一个地方,效率稍高。