1

ミドルウェア内で Request オブジェクトを取得しようとしています。ajaxOnly ミドルウェアを作成しており、isXhr() リクエスト メソッドを確認する必要があります。次のようなものを作成しようとしました:

 $ajaxOnly = function($request, $response, $route) { // this is the line 3
             if (!$request->isXhr()) {
                Slim::redirect('/dashboard/');
             }
            };

そして、そのように使用します:

$app->get('/posts/:start_date/:end_date', $ajaxOnly, function($start_date, $end_date) use($app) {
    echo 'ok';
});

しかし、それは私に次のエラーを与えています:

Slim アプリケーション エラー 次のエラーのため、アプリケーションを実行できませんでした:

  • コード: 2 メッセージ:
  • {closure}() の引数 1 がありません
  • ファイル: /var/www/myapp/routes.php 行: 3
4

2 に答える 2

2

何が起こるかというと、スリムはクロージャーにパラメーターを渡さないため、そのエラーが発生します。次のようなことを試してください

$ajax = function(){
    $slim = Slim::getInstance();
    if (!$slim->request()->isXhr()) {
            $slim->redirect('/dashboard/');
    }
};
于 2012-10-18T02:20:10.237 に答える