объект запроса доступа в группе маршрутов - Slim Framework - PullRequest
0 голосов
/ 14 июня 2019

Я использую 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 голосов
/ 23 июля 2019

группы предназначены только для создания маршрутизатора (и по имени - группы маршрутов)

Вы должны использовать и получать доступ только к запросам в Middlewares и Controllers (т. Е. В качестве маршрутов используются clousures)

во время группового вызова запрос может быть еще не определен

приложение строит весь маршрутизатор (группы, каждый маршрут, ..) а затем по запрошенному URI маршрутизатор заполнит и передаст Request вашему промежуточному программному обеспечению и маршрутизирует стек

используйте Slim Documentation, она полна валидных примеров:

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