これは数時間前から行われており、なぜ動作していないのかわからないようです。 SLIMを初めて使用し、ミドルウェアに初めて晒されました。私はスリムなウェブサイトに記載されているtutorialに従うことを試みていますが、仕事に就くことはできません。SLIMフレームワークでミドルウェアを使用するとエラーが発生する
私のブートストラップコード:
<?php
require '../vendor/autoload.php';
$app = new Slim\Slim();
$app->get('/test', function() {
echo 'Hello, World';
});
$mw = function ($request, $response, $next) {
$response->getBody()->write('BEFORE');
$response = $next($request, $response);
$response->getBody()->write('AFTER');
return $response;
};
$app->add($mw);
$app->run();
私はミドルウェアなしでちょうど私のスリムなURLを実行すると、それがうまく動作します。 http://mysite/testを実行すると、出力としてHello, World
が得られます。私は何かが欠け
Catchable fatal error: Argument 1 passed to Slim\Slim::add() must be an instance of Slim\Middleware, instance of Closure given, called in /Applications/XAMPP/xamppfiles/htdocs/project/api/public/index.php on line 22 and defined in /Applications/XAMPP/xamppfiles/htdocs/academy/api/vendor/slim/slim/Slim/Slim.php on line 1267
アム:私はミドルウェアのコードを追加するときしかし、私は次のエラーを取得するスリムなサイトに記載されましたか?ミドルウェアには他の設定が必要ですか?スリムなドキュメンテーションはそれほど役に立ちません。どんな助けもありがたい。
それは動作しますか? – BizzyBob
@BizzyBob申し訳ありませんが、それを削除することです。それは私だけの仕事にしようとしていましたが、私は最初に 'use($ app)'を使っていましたが、それでも動作しません。 – bos570
この$ container = $ app-> getContainer(); $コンテナ["mw"] = $ mw; $ app-> add($ mw);私は '未定義のメソッドスリム\スリムへのコールを取得する:: getContainer()/Applications/XAMPP/xamppfiles/htdocs/academy/api/public/index.phpにライン21' –