2015-07-10 4 views
2

Я использую API-интерфейс Joomla для создания веб-приложения. Теперь я хочу отобразить некоторые данные из базы данных в формате JSON, и мне нужно изменить HTTP-Content-Type по умолчанию с text/html на application/json. Рамки Joomla поставляется с компонентом фундаментной Symfony HTTP, так что я искал в Интернете и нашел это:Установить собственный тип содержимого в Joomla Framework

use Symfony\Component\HttpFoundation\Response; 
$response = new Response(); 
$response->headers->set('Content-Type', 'application/json'); 
$response->send(); 

Но нет никакого эффекта.

Я также попробовал стандартный способ:

header("Content-Type: application/json"); 

Это не работает тоже ..

Спасибо за любые советы!

+0

AFAIK единственным компонентом Symfony, используемым в Joomla, является компонент YAML. Где вы узнали, что «платформа Joomla поставляется с Symfony»? –

+0

Когда я установил фреймворк через композитор, он также установил компонент фундамента Symfony Http .. – nicl

+0

Глядя на https://packagist.org/packages/joomla/framework, кажется, что единственными установленными зависимостями являются psr/log и symfony/YAML. Я пробовал себя, и я не получил компонент Symfony Http Foundation. Может быть, это другая версия, которую вы установили? P.S. жаль настаивать на этом, но я думаю, что это очень актуально для вашего вопроса. –

ответ

1

Я нашел следующее решение:

В \ Joomla \ Application \ AbstractWebApplication Я написал новый метод, который задает существующий атрибут MIMETYPE:

public function setMimeType($mimeType) { 
      $this->mimeType = $mimeType; 
     } 

Это работает отлично.

0

Проверьте API JApplicationWeb и функции setHeader/sendHeader.

+0

Я использую API-интерфейс Joomla Framework, а не API-интерфейс Joomla CMS. – nicl

Смежные вопросы