YII2 resfull 创建自定义 请求 方法 修改默认请求 覆盖prepareDataProvider
YII2 resfull 请求的时候发现 GET PUT post 不是 自己想要的 地址
可以 用 prepareDataProvider
覆盖
或者 Yii::$app->request->method
获取请求方式 选择控制器 对应的方法
<?php
namespace api\controllers;
use Yii;
use yii\web\Controller;
use yii\rest\ActiveController;
use yii\web\Response;
use yii\helpers\Json;
/**
* Site controller
*/
class SiteController extends ActiveController
{
public $modelClass = 'api\models\User';
public function actionApi( )
{
Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
return Yii::$app->request->method ;
}
public function actions() {
$actions = parent::actions();
// // 注销系统自带的实现方法
// unset($actions['index'], $actions['update'], $actions['create'], $actions['delete'], $actions['view']);
// $actions['index']['actionViews'] = [$this,''];
//如果使用Gii为您的模型生成CRUD,您定义了一个搜索模型类,然后您可以使用它来过滤结果,您所要做的就是覆盖强制它的prepareDataProvider
$actions['index']['prepareDataProvider'] = [$this, 'actionViews']; // 默认 GET 请求 访问actionViews 方法
return $actions;
}
public function actionViews()
{
//这里可以做你想做的
Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
return json_encode(Yii::$app->request->get());
return 1326; //返回 json 数据
}
}