2012-05-31 37 views
6

Tôi đang làm việc với CI_Controller mở rộng REST_Controller và vì lý do nào đó, các yêu cầu của tôi đều quay trở lại với kiểu nội dung văn bản/html thay vì json. Trong cấu hình của tôi, tôi có json được đặt làm định dạng mặc định:Cách xác định loại nội dung bằng Mã Igniter REST_Controller

$config['rest_default_format'] = 'json'; 

Kết quả của tôi sẽ trở lại dưới dạng JSON nhưng loại nội dung không được đặt. Bất cứ ai có thể giúp đỡ với những gì tôi đang thiếu?

Trả lời

11

Tôi không chắc liệu cấu hình có đặt định dạng hay không. Tuy nhiên, một công việc đơn giản xung quanh có thể là chỉ để sử dụng lớp đầu ra để thiết lập các kiểu nội dung tiêu đề, một cái gì đó như:

$this->output 
    ->set_content_type('application/json') 
    ->set_output(json_encode(array('foo' => 'bar'))); 

(Trích từ cuốn hướng dẫn: here)

0

Trong khi thiết contect_type ở mỗi chức năng giúp, điều này có thể được thực hiện chung ở cấp độ điều khiển bằng cách thiết lập này tại constructor.

public function __construct() { 
    parent::__construct(); 
    ... 
    $this->output->set_content_type('application/json'); 
} 

Vì vậy, bạn chỉ đơn giản là sẽ thiết lập các đầu ra ở mỗi cấp chức năng

$this->output->set_output('{"message":"Failure"}'); 

này đã làm việc cho tôi.

Các vấn đề liên quan