路由组中的访问请求对象-Slim Framework

时间:2019-06-13 22:13:30

标签: php slim-3

我正在使用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}(),

1 个答案:

答案 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']
});