一 路由
1.1 查看路由配置
php bin/hyperf.php describe:routes
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",
];
}
3.2 输入下载文件
return $response->download(BASE_PATH . '/public/file.csv', 'filename.csv');