2

我正在向控制器发送带有 GET 方法的 ajax 请求

Route::get('test', ['Middleware' => 'TestFilter', 'uses' => 'HomeController@index']);

中间件:

public function handle($request, Closure $next)
{
    return $next($request); //This does not seem to pass $request to HomeController
}

在 HomeController 的 index() 方法中,我试图返回 $request 但页面抛出错误

'Undefined variable: request' in D:\Apps\apilab\app\Http\Controllers\HomeController.php

我只是返回$requestHomeController

class HomeController extends Controller {
  public function index() {
    return $request;
  }
}

如何将请求变量传递给 HomeController@index 以便我可以继续处理?我厌倦了尝试各种方法...

4

1 回答 1

4

您的代码不正确。你returning 两次 - 但只有第一次return会被处理。

一旦你的中间件完成 - 只需传递 $next($request) - 这样它就可以由框架的其余部分处理

public function handle($request, Closure $next)
{
    return $next($request);
}

然后在你的控制器中

class HomeController extends Controller {
  public function index(Request $request) {
    return $request;
  }
}
于 2015-02-17T13:02:47.903 回答