Как отправить ответ, используя «новый ответ» или «Response :: factory ()» в Kohana 3.1? - PullRequest
1 голос
/ 14 марта 2012

Примеры, которые я вижу, предлагают использование следующим образом:

$response = new Response();
echo $response->body($view)->send_headers()->body();

Но если у меня есть следующий код

$response = new Response();
$response->headers('Content-Type', 'application/json');
echo $response->body($view)->send_headers()->body();

, он отправляет вывод в порядке, но это в HTMLформат, а не JSON.

Каков правильный способ отправки нового ответа вместе с заголовками?Я использую Kohana 3.1 с php 5.3

Редактировать:

Прежде чем вы начнете думать, что я за дурак, что не пользуюсь $this->response->body(<blah here>);, позвольте мне уточнить, что я знаю, как использовать ответ контроллераобъект ... Это не то, что я ищу ... Я хочу полностью отправить ответ от статической функции, которая не находится рядом с контроллером в стеке вызовов функций:)

Ответы [ 2 ]

1 голос
/ 14 марта 2012

Все еще новичок в Kohana, но вот как я это сделал, и, кажется, работает нормально:

$this->response->headers('Content-type','application/json; charset='.Kohana::$charset);
$this->response->body(json_encode( $data_array ));

Я думаю, что кодировка не является обязательной ... надеюсь, это поможет.

0 голосов
/ 29 марта 2012

ОК, почесав голову и попробовав множество решений, я решил использовать это:
Request::initial()->response()<br> ->body($view)<br> ->headers('Content-type','application/json');

Работает откуда угодно, если вы не напишите exit где-нибудь в потоке.

...