0
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()
のようです。
に注目されるあなたは、これが動作するためにスリムなアプリケーションの設定を使用する必要がありますように
として、リクエストに応じて
routeInfo
属性を介してアクセスすることができます。 determineRouteBeforeAppMiddleware => true ... http://www.slimframework.com/docs/objects/application.html#slim-default-settings – geggletoおそらく、書かれたコードは実行可能なサンプルからコピーされたものです。その設定を真にすることで、予期せぬ問題は止めることができます。 –
ありがとうGareth。私はこのコードをテストし、そのまま動作します。良い文書がないことを考えると、将来の改訂ではサポートされないかもしれないと少し心配しています。 – user1032531