2017-10-14 81 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