我試圖在沒有任何引數或查詢引數的情況下在 laravel 中獲取當前 url,假設我在 api.php 檔案中有這條路線:
test/{id}/get-test-data/{type}
網址是
test/395/get-test-data/temp
我需要在中間件中記錄這個基本網址,test/{id}/get-test-data/{type}而不是帶有引數的網址,
我試過這個
$route = \Route::current();
$route->uri;
它起作用了,但是當端點被擊中中間件時,將 $route->uri 列印兩次,如下所示
test/395/get-test-data/temp
test/{id}/get-test-data/{type}
有什么辦法可以避免列印第一行?
uj5u.com熱心網友回復:
根據這里的答案
當您向 /api/posts 發送 POST、PUT、DELETE 或 PATCH 請求時,瀏覽器會先發送一個 OPTIONS 請求,因此 laravel “注冊”所有路由,然后使用 URL 和 HTTP 方法執行“匹配”(現在是選項)。
但是沒有具有 OPTIONS 方法的路由,并且資源也沒有 OPTIONS 方法,因此由于沒有具有 OPTIONS 方法的路由,laravel 不匹配任何東西,因此它不會執行那些你所在的中間件最終處理 OPTIONS 方法。
所以解決辦法就是在中間件中過濾掉這些選項請求:
if ($request->method() != 'OPTIONS') {
...
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/458930.html
