代码之家  ›  专栏  ›  技术社区  ›  151291

如果找不到路由,如何将404作为json响应处理?

  •  0
  • 151291  · 技术社区  · 6 年前

    使用Laravel 5.4,我想发送json响应,但是在api.php中找不到路由,如何在api.php中存档,并且不使用Controller和Model类。

    短的 :路由名称不正确时如何处理?

    试过了 fallback :

    Route::fallback(function(){
        return response()->json(['message' => 'Not Found!'], 404);
    });
    

    以上错误:

    Attribute [fallback] does not exist.
    

    请帮助我,当路由名称请求不正确时,如何处理路由未找到异常。

    1 回复  |  直到 6 年前
        1
  •  0
  •   NobbyNobbs    6 年前

    从5.6版开始提供回退。尝试Route::any()


    @nobbynobs-trim()要求参数1为字符串,给定对象

    在api.php的末尾(在所有其他路由的下面)添加如下内容

    Route::any('{path}', function() {
        return response()->json([
            'message' => 'Route not found'
        ], 404);
    })->where('path', '.*');
    

    如何在api.php中存档,而不使用Controller和Model类

    在我看来,使用匿名函数作为路由处理程序并不是一个好主意,因为如果使用闭包,则无法缓存路由,这会导致一些开销。