我正在尝试将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';
});
但它给了我以下错误:
超薄应用程序错误应用程序无法运行,因为 以下错误:
答案 0 :(得分:2)
会发生什么,slim不会将任何参数传递给Closure,所以你得到了这个错误,试试这样的事情
$ajax = function(){
$slim = Slim::getInstance();
if (!$slim->request()->isXhr()) {
$slim->redirect('/dashboard/');
}
};
答案 1 :(得分:0)
$ajaxOnly = function($app) {
if (!$app->request()->isXhr()) {
$app->redirect('/dashboard');
}
};