Yii2:如何使用$ dataprovider返回JSON

时间:2016-07-20 14:17:11

标签: json yii2

我有这段代码

public function actionIndex() {
    $searchModel = new DraftSearch();
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams);


    return $this->render('index', [

                'dataProvider' => $dataProvider,
    ]);
}

我想以JSON格式返回$ dataprovider,请知道如何在Yii2中执行此操作,谢谢

1 个答案:

答案 0 :(得分:0)

好像你需要\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON

如果你需要json中的返回值,你应该使用

public function actionIndex()
{

    \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
    $searchModel = new DraftSearch();
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
    return $dataProvider;
}

或者,如果你需要渲染中的dataProvider,你可以试试json_encode

public function actionIndex() {
    $searchModel = new DraftSearch();
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

    $myJsonDataProvider  json_encode($dataProvider);

    return $this->render('index', [

                'dataProvider' => $myJsonDataProvider,
    ]);
}