二 Hyperf 路由配置,获取请求数据

357 阅读1分钟

一 路由

1.1 查看路由配置

 php bin/hyperf.php describe:routes

image.png

1.2 route.php 文件配置

Router::addRoute(['GET', 'POST', 'HEAD'], '/', 'App\Controller\IndexController@index');

Router::get('/favicon.ico', function () {
    return '';
});

Router::addGroup('/debug/',function (){
    Router::get('index','App\Controller\DebugController@index');
    Router::post('store','App\Controller\DebugController@store');
    Router::get('update','App\Controller\DebugController@update');
    Router::post('delete','App\Controller\DebugController@delete');
});

#路由参数
Router::get('/user/{id}', 'App\Controller\UserController::info');

1.3 使用AutoController 注解来定义路由

控制器代码
use Hyperf\HttpServer\Annotation\AutoController;
#[AutoController]
class MyDataController

// 调用  /my_data/index

#[AutoController(prefix:"data")]
class MyDataController

// 调用  /my_data/index

1.4 controller 注解

不用记,需要时查官网文档 hyperf.wiki/3.0/#/zh-cn…

用法:就项目而言,在 routes.php 进行配置,更好管理和查看. 偶尔的debug ,直接用 AutoController

二 获取请求数据

# 获取路由参数
$id = $request->route('id');

# 获取query 参数
$name = $request->query('name');

# 获取post 数据
$all = $request->all(); //全部

//json 多级使用 . 
$name = $request->input('user.name', 'Hyperf');


三 response

3.1 响应json

//coc 默认数组会转json.
public function index()
{
    $method = $this->request->getMethod();
    return [
        'method' => $method,
        'message' => "DebugController index",
    ];
}

image.png

3.2 输入下载文件

    return $response->download(BASE_PATH . '/public/file.csv', 'filename.csv');