Nie trzeba ręcznie ustawiać nagłówka w ten sposób.
W konkretnym działania/metody można ustawić go tak:
use Yii;
use yii\web\Response;
...
public function actionIndex()
{
Yii::$app->response->format = Response::FORMAT_JSON;
}
Następnie po tym po prostu wrócić prostą tablicę tak:
return ['param' => $value];
Można znaleźć hotel w oficjalnych docs here.
Dla ponad jednej działaniem przy użyciu specjalnego ContentNegotiator
filtr jest bardziej elastyczne podejście:
/**
* @inheritdoc
*/
public function behaviors()
{
return [
[
'class' => ContentNegotiator::className(),
'only' => ['index', 'view']
'formats' => [
'application/json' => Response::FORMAT_JSON,
],
],
];
}
Istnieje więcej ustawień, można to sprawdzić w official docs.
Co do reszty, baza yii\rest\Controller ma już ona ustawiona na json
i xml
:
'contentNegotiator' => [
'class' => ContentNegotiator::className(),
'formats' => [
'application/json' => Response::FORMAT_JSON,
'application/xml' => Response::FORMAT_XML,
],
],
Dzięki arogachev za doskonałą informację. chociaż moje pytanie dotyczyło właśnie kodowania json w Yii2, dodano świetną informację o nagłówkach ustawień Bardzo dziękuję –