当 Route::fallback 出现时检查路线是否存在

Check if route exists when Route::fallback present

我正在尝试确定给定路线是否存在于 Laravel 的 Route::fallback 内部。以下代码段 应该 抛出 NotFoundHttpException 异常,但我怀疑这不是由于回退的存在(即路由确实作为回退存在)。

Route::fallback(function () use ($routes) {
    try {
        $next = Request::create('does-not-exist');
        Route::getRoutes()->match($next);
    } catch (NotFoundHttpException) {
        // Should end up here
    }
});

对于某些上下文:我希望能够找到一条确实存在的路线,然后显示另一条路线的内容。第二条路线可能最终并不存在,我希望能够抓住它。

TIA

Route::getRoutes()->match($next); 的结果将是一个 Illuminate\Routing\Route 对象。您可以检查此对象的 isFallback property.

的值
Route::fallback(function () use ($routes) {
    $next = Request::create('does-not-exist');
    $route = Route::getRoutes()->match($next);
    if ($route->isFallback) {
        // do your thing
    }
});