Non è necessario impostare manualmente l'intestazione in questo modo.
Nell'azione/metodo specifico è possibile impostare in questo modo:
use Yii;
use yii\web\Response;
...
public function actionIndex()
{
Yii::$app->response->format = Response::FORMAT_JSON;
}
Poi, dopo che solo restituiscono un semplice array del genere:
return ['param' => $value];
Potete trovare questa proprietà nei documenti ufficiali here.
Per più di un'azione utilizzando uno speciale filtro ContentNegotiator
è l'approccio più flessibile:
/**
* @inheritdoc
*/
public function behaviors()
{
return [
[
'class' => ContentNegotiator::className(),
'only' => ['index', 'view']
'formats' => [
'application/json' => Response::FORMAT_JSON,
],
],
];
}
Non ci sono ulteriori impostazioni, è possibile controllare in official docs.
Per il resto, la base yii\rest\Controller ha già in posa per json
e xml
:
'contentNegotiator' => [
'class' => ContentNegotiator::className(),
'formats' => [
'application/json' => Response::FORMAT_JSON,
'application/xml' => Response::FORMAT_XML,
],
],
Grazie arogachev per grandi informazioni. anche se la mia domanda era solo su come codificare json in yii2, hai aggiunto ottime informazioni sulle intestazioni delle impostazioni Grazie mille –