2017-10-14 82 views
1

我有一个路由组Ajax请求,看起来如下:需要路由组

web.php

Route::group(['middleware' => 'auth', 'prefix' => 'ajax'], 
    function() { 
     Route::post('checkTheName', function(Request $request) { 
      return response()->json('Something important'); 
     }); 
    } 
); 

这可能与Laravel检查传入的请求是否是在所有航线的AJAX请求一个组(如果没有,则抛出404状态)?我觉得在每个孩子的路线上都有点无意义的检查。那就是为什么我想要做一个全局检查,如果请求在路由组范围内。

使用Laravel 5.5

回答

2

您可以通过使用中间件和使用这种检查,如果该请求是一个Ajax请求或不实现这一目标。

您可以使用php artisan make:middleware AjaxMiddleware创建新的中间件。

里面的手柄功能,您可以看看做这样的事情:

public function handle($request, Closure $next) 
{ 
    abort_unless($request->ajax(), 404); 
} 

这需要在abort_unless()帮手,这需要条件语句作为第一个参数,然后将状态码在第二返回的优势。 你也可以选择做abort_unless($request->ajax(), 401)这将是一个未经授权的请求。

然后,您只需要在Kernel.php文件中注册中间件,并将其应用到路由组或您的控制器构造函数中。

+0

整洁。多谢詹姆斯。由于15级的信誉障碍,不幸的是无法赞成。 – Kesse

+0

你去了;-) – Kesse