2016-07-27 2 views
0

現在、JSON応答/データを返すために、APIモジュールのすべてのコントローラで次のコード行を使用しています。config/main.phpを使用してJSON応答を返すようにYii2モジュールを設定する方法

public function behaviors() 
    { 
     $behaviors = parent::behaviors(); 
     $behaviors['contentNegotiator']['formats']['text/html'] = Response::FORMAT_JSON; 
     return $behaviors; 
    } 

これはうまくいきます。しかし、どのように私はメインの構成ファイルを使用して同じ達成することができますか? 私はまだ唯一のXMLレスポンスを返す私のフロントエンド/設定/ main.phpに設定上記

'api' => [ 
     'class' => 'app\modules\api\Module', 
     'components' => [ 
      'user' => [ 
        'class' => 'yii\web\User', 
        'identityClass' => 'common\models\User', 
        'enableSession' => false, 
        'loginUrl' => null, 
        ], 

      'response' => [ 
        'class' => \yii\filters\ContentNegotiator::className(), 
        'formats' => [ 
         'application/json' => \yii\web\Response::FORMAT_JSON, 
           ], 
        ] 
     ],// Module component 

    ], 

を以下を試してみました。 JSON data.Thanksが

+0

郵便配達員経由でapiにアクセスしてみてください。 JSONデータを返す必要があります – Choxx

答えて

0

を追加返すためにAPIモジュール内のすべてのコントローラを設定するための正しい設定はどのようなものです、これは次のようにあなたのconfig /メインlocal.phpファイル

use yii\web\Response; 
$config['bootstrap'][]= 
    [ 
     'class' => '\yii\filters\ContentNegotiator', 
     'formats' => [ 

      'text/html' => Response::FORMAT_JSON, 
     ] 
    ]; 
+0

あなたのソリューションはグローバルに動作していますが、特定のモジュールに同じものを適用する方法は?ありがとう –

+0

ビヘイビアをモジュールに追加したり、コントローラをベースコントローラに拡張することができます –

1

があなたの応答成分を構成している。

'response' => [ 
    'format' => yii\web\Response::FORMAT_JSON, 
    // ... 
] 

formatsは、利用可能なフォーマットを含む配列です。 formatが実際の出力形式です。

+0

ソース:http://www.yiiframework.com/doc-2.0/yii-web-response.html パブリックプロパティの前の説明を参照してください。 –

関連する問題