2016-03-03 4 views
1

У меня возникли проблемы с настройкой кодировки ответа. Пробовал:Slim Framework: настройка кодировки при ответе

  • $ app-> CONTENTTYPE ('текст/html; кодировка = UTF-8');
  • header ("Content-Type: application/json");
  • $ app-> response() -> header ('Content-Type', 'application/json; charset = utf-8');

Я застрял ...: -/

EDIT
Я скачал Slim/slim-skeleton через Composer.

Мне нужно вернуть JSON в мой Route.php:

$app->get('/getStoresByBounds', function() use ($app, $stores) { 
    $app->contentType('application/json'); 

    $myStores = $stores->getStores(); 

    $app->response()->write(json_encode($myStores)); 

    $app->stop(); 
}); 

ответ

1

Вы можете попробовать это :)

// APP 
$app = Slim::getInstance(); 

// CONTENT-TYPE 
$app->contentType('application/json'); 

// STATUS 
$app->status(200); 

// RESPONSE ARRAY 
$response = array(); 

// PRINT THE RESPONSE ARRAY 
$app->response()->write(json_encode($response)); 
$app->stop(); 

Или попытаться получить доступ $app внутри вашей функции по:

$app = \Slim\Slim::getInstance(); 

Поскольку вы используете V3, вы можете использовать это:

$app = new \Slim\App(); 

$app->get('/getStoresByBounds', function (Request $request, Response $response) { 

    $myStores = $stores->getStores(); 

    $response->getBody()->write(json_encode($myStores)); 

    $newResponse = $response->withHeader(
     'Content-type', 
     'application/json; charset=utf-8' 
    ); 

    return $newResponse; 
}); 
+0

Я не могу использовать его в маршруте - он говорит: "неопределенный класс". Пытался использовать ($ app) 'в маршруте, но это не сработало. –

+0

Добавили ли вы Slim \ Slim; наверху вашего класса? Или вы можете показать примерный код? – Swag

+0

Когда я пробую пример вашей лестницы, он все еще говорит, что Slim - неопределенный класс. Я использую последнюю версию Slim, версия 3.2.1. В версии 2.6.1 (мой последний проект) не было проблемы ... :-( –

1

От The Response/ Headers/ Set Header:

$newResponse = $oldResponse->withHeader('Content-type', 'application/json'); 
+0

Пила в документации. Но что такое '$ oldResponse'? Мне просто нужно отправить ответ на Маршрут. –

+0

Для этого перейдите в раздел [Начало работы] (http://www.slimframework.com/docs/). Ответ является вторым аргументом обработчика маршрута. И теперь я думаю о вашем коде ... Используете ли вы Slim 3? Я предполагал, что, поскольку вы никогда не упоминали об использовании старой версии, но ваши попытки кода не соответствуют текущим версиям. –

+0

To @downvoter ... Упоминайте, почему указатель на конкретный раздел документации, который объясняет тему, «не полезен»? –

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