我正在使用Slim Framework,我需要访问组中的Request对象,以便创建对象并在路由中使用它们
$app->group('/my-group', function (App $app) {
$id = $app->request->getAttribute('id')); // this doesn´t work
$user = some_method_to_find_user($id)
$app->get('/route-1', function () use ($user) {
var_dump($user);
}
}
如何访问请求对象?
我也尝试过
$app->group('/api', function (App $app, Request $request) {
$id = $request->getAttribute('id')); // this doesn´t work
但是给我这个错误:
Uncaught ArgumentCountError: Too few arguments to function Closure::{closure}(),
答案 0 :(得分:0)
组仅用于创建路由器(按名称-路由组)
您应该仅在中间件和控制器(即用作路由的集群)中使用和访问请求
在群组通话期间,请求可能尚未确定
应用程序正在构建整个路由器(组,每个路由,..) 然后由请求的URI路由器填充请求并将其传递给您的中间件并路由堆栈
使用Slim文档,其中包含有效的示例:
http://www.slimframework.com/docs/v3/objects/router.html#how-to-create-routes
$app->get('/books/{id}', function ($request, $response, $args) {
// Show book identified by $args['id']
});