2016-07-20 69 views
2

我有這樣的代碼

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


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

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

我想以JSON格式返回$數據提供程序,請在如何做到這一點的Yii2感謝任何想法

+0

你的意思是你想要返回json格式的模型? – soju

+0

是的,我想以json格式返回模型,謝謝 – sam

回答

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, 
    ]); 
} 
+0

感謝這個幫助,但我如何訪問我的視圖文件中的數據,我可以回顯它並獲得json格式的數據,但是當我嘗試將此數據分配給javascript變量時將不起作用 – sam

+0

在視圖中你有一個var $ dataProvider,它包含你通過渲染函數發送的東西..但你的評論似乎是另一個問題...所以請評價我的答案,如果是正確的..那麼如果你有關於如何訪問視圖發佈有關此論點的適當問題以及最終評論我的新鏈接的問題.. .. – scaisEdge

相關問題