如果找不到路由,如何将 404 处理为 json 响应?
How to handle 404 as json response if route not found?
使用 Laravel 5.4,我想发送 json 响应,但在 api.php 中找不到路由,我如何使用 api.php 和没有控制器和模型 class。
short: 路由名称不正确如何处理?
尝试过 fallback
:
Route::fallback(function(){
return response()->json(['message' => 'Not Found!'], 404);
});
以上错误:
Attribute [fallback] does not exist.
请帮帮我,请求错误路由名称时如何处理路由未找到异常。
fallback available since version 5.6. try Route::any()
@NobbyNobbs - trim() expects parameter 1 to be string, object given
在您的 api.php 末尾添加(在所有其他路线下方),例如
Route::any('{path}', function() {
return response()->json([
'message' => 'Route not found'
], 404);
})->where('path', '.*');
how can I archive with in api.php and without Controller and Model class
在我看来,使用匿名函数作为路由处理程序并不是一个好主意,因为如果您使用闭包,则无法缓存您的路由,这会导致一些开销。
You can make it globally by handling it in your app/Exceptions/Handler.php file.
Laravel v7
您可以在下面添加此代码:
public function render($request, Throwable $exception)
{
if ($request->expectsJson()){
if ($exception instanceof ModelNotFoundException){
return response([
'errors'=> 'Object Not Found'
], 404);
}
if ($exception instanceof NotFoundHttpException){
return response([
'errors'=> 'Route Not Found'
], 404);
}
}
return parent::render($request, $exception);
}
使用 Laravel 5.4,我想发送 json 响应,但在 api.php 中找不到路由,我如何使用 api.php 和没有控制器和模型 class。
short: 路由名称不正确如何处理?
尝试过 fallback
:
Route::fallback(function(){
return response()->json(['message' => 'Not Found!'], 404);
});
以上错误:
Attribute [fallback] does not exist.
请帮帮我,请求错误路由名称时如何处理路由未找到异常。
fallback available since version 5.6. try Route::any()
@NobbyNobbs - trim() expects parameter 1 to be string, object given
在您的 api.php 末尾添加(在所有其他路线下方),例如
Route::any('{path}', function() {
return response()->json([
'message' => 'Route not found'
], 404);
})->where('path', '.*');
how can I archive with in api.php and without Controller and Model class
在我看来,使用匿名函数作为路由处理程序并不是一个好主意,因为如果您使用闭包,则无法缓存您的路由,这会导致一些开销。
You can make it globally by handling it in your app/Exceptions/Handler.php file.
Laravel v7
您可以在下面添加此代码:
public function render($request, Throwable $exception)
{
if ($request->expectsJson()){
if ($exception instanceof ModelNotFoundException){
return response([
'errors'=> 'Object Not Found'
], 404);
}
if ($exception instanceof NotFoundHttpException){
return response([
'errors'=> 'Route Not Found'
], 404);
}
}
return parent::render($request, $exception);
}