Согласно http://www.slimframework.com/docs/concepts/middleware.html, промежуточное программное обеспечение маршрутизации добавляется следующим образом.Доступ к параметрам в промежуточном программном обеспечении Slim v3
<?php
$app = new \Slim\App();
$mw = function ($request, $response, $next) {
// How is $arg accessed?
$response->getBody()->write('BEFORE');
$response = $next($request, $response);
$response->getBody()->write('AFTER');
return $response;
};
$app->get('/ticket/{id}', function ($request, $response, $args) {
$response->getBody()->write(' Hello ');
// $arg will be ['id'=>123]
return $response;
})->add($mw);
$app->run();
$arg
будет массивом параметров. Как можно получить доступ к промежуточному программному обеспечению?
http://help.slimframework.com/discussions/questions/31-how-pass-route-pram-to-middleware показывает, что подход к этому, однако, представляется более ранним выпуском Slim и ошибками Fatal error: Call to undefined method Slim\\Route::getParams()
.
Вам нужно будет использовать тонкий настройки приложений для того, чтобы это работало. defineRouteBeforeAppMiddleware => true ... http://www.slimframework.com/docs/objects/application.html#slim-default-settings – geggleto
Возможно, но этот код, как написано, был скопирован с самого запуска. Наличие этой установки для истины может остановить любые непредвиденные проблемы, хотя –
Спасибо Гарет. Я тестировал этот код, и он работает так, как есть. Учитывая отсутствие хорошей документации, я немного обеспокоен тем, что в будущих пересмотрах она не может быть поддержана. – user1032531