Laravel 8.26.0 版本以上,在路由模組新增了一個missing()
方法,我們在實際開發中,經常使用路由隱形綁定會自動尋找對應的數據,減少在Controller 中自己編寫程式碼。在之前,如果模型沒有查到對應的數據,會自動跳到全域統一的 404 頁面,不夠靈活。而 missing()
方法就是為了解決這個問題而來的。Route::get('/users/{user:slug}', [UserController::class, 'show']) ->name('user.view') ->missing(function (Request $request) { return Redirect::route('user.index'); });
當請求 missing.test/users/dalian 時,如果在使用者表中查不到 slug 為 dalian 的數據,會跳到使用者清單的首頁,而不是統一的 404 頁面。
注意:
此方法只適用於路由的隱形綁定才會有效,例如在Controller 中使用findOrFail方法,即使未查到指定的數據,也不會出發
missing方法,而是會跳到統一的404 頁面。
以上是介紹Laravel8路由模組新增missing方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!