我可以将 yii2 函数 afterAction 配置为 return 我的 api 数据吗?
Can I configure yii2 function afterAction to return my api data?
我正在开发我的 yii2 api,我正在寻找一种从我的控制器操作中获取数据的方法。这是我在 json 或 xml.
中的回复所需的示例
{"success": true,
"message": {data},
"session": "U0phRm51az",
"metadata": "metadata"
}
我正在从控制器获取消息,而成功检查响应是否正常,会话是会话数据,元数据是其他数据。
我的动作是这样的。
public function actionIndex(){
$data = array();
}
所有这些都使用相同的功能,所以我不想在所有操作中重复。我想知道如何使用我的模块 class (不是配置文件)上响应组件的 afterAction
或 beforeSend
事件从每个操作中获取 $data
)。如果这不可能,我该如何实现?
如果您的操作 return 数据作为数组,您可以在控制器的 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;
}
我正在开发我的 yii2 api,我正在寻找一种从我的控制器操作中获取数据的方法。这是我在 json 或 xml.
中的回复所需的示例{"success": true,
"message": {data},
"session": "U0phRm51az",
"metadata": "metadata"
}
我正在从控制器获取消息,而成功检查响应是否正常,会话是会话数据,元数据是其他数据。 我的动作是这样的。
public function actionIndex(){
$data = array();
}
所有这些都使用相同的功能,所以我不想在所有操作中重复。我想知道如何使用我的模块 class (不是配置文件)上响应组件的 afterAction
或 beforeSend
事件从每个操作中获取 $data
)。如果这不可能,我该如何实现?
如果您的操作 return 数据作为数组,您可以在控制器的 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;
}