2015-09-18 28 views
0

我正在使用我的yii2 API,並且正在尋找一種方法從我的控制器操作中獲取數據。這是我在json或xml中的響應所需的示例。我可以在afterAction中配置yii2函數來返回我的api數據嗎?

{"success": true, 
"message": {data}, 
"session": "U0phRm51az", 
"metadata": "metadata" 
} 

我從控制器而成功檢查響應是否是行獲取消息,會話是會話數據和元數據是其它數據。 我的行爲看起來像這樣。

public function actionIndex(){ 
    $data = array(); 
} 

所有這些使用相同的功能,所以我不希望在所有操作重複。我想知道如何從我的模塊類(不是配置文件)上使用afterActionbeforeSend事件響應組件的每個動作獲得$data。如果這是不可能的,我該如何做到這一點?

回答

1

如果您的操作將數據作爲數組返回,您可以在控制器的afterAction方法中向該數組添加更多內容。

public function actionIndex() 
{ 
    //... 
    //$data contains an array 
    return [ 
     'data' => $data 
    ]; 
} 

public function afterAction($action, $result) 
{ 
    $result = parent::afterAction($action, $result); 
    $result['session'] = '...'; 
    $result['metadata'] = '...'; 
    return $result; 
} 
相關問題