【问题标题】:Check if route exists when Route::fallback present当 Route::fallback 存在时检查路由是否存在
【发布时间】:2021-09-24 11:18:35
【问题描述】:

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

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

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

TIA

【问题讨论】:

  • 可以在App\Exceptions处理404异常
  • 我知道这一点,但用户提出的请求将是合法路线,然后显示来自另一条路线的内容。没有机会处理 404 异常。

标签: php laravel laravel-routing


【解决方案1】:

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
    }
});

【讨论】:

    猜你喜欢
    • 2021-11-14
    • 2016-07-08
    • 1970-01-01
    • 1970-01-01
    • 2019-12-09
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多