Php 未找到Laravel API接收JSON 404
我正在开发一个Laravel5.6API,我正在使用资源和集合,路由模型绑定 要显示项目,我当前在控制器中使用以下代码:Php 未找到Laravel API接收JSON 404,php,laravel,Php,Laravel,我正在开发一个Laravel5.6API,我正在使用资源和集合,路由模型绑定 要显示项目,我当前在控制器中使用以下代码: public function show(Todo $todo) { TodoResource::withoutWrapping(); return new TodoResource($todo); } 在Exceptions>Handler.php中,我有以下内容: public function render($request, Exception $
public function show(Todo $todo)
{
TodoResource::withoutWrapping();
return new TodoResource($todo);
}
在Exceptions>Handler.php中,我有以下内容:
public function render($request, Exception $exception)
{
// This will replace our 404 response with
// a JSON response.
if ($exception instanceof ModelNotFoundException) {
return response()->json([
'error' => 'Resource not found'
], 404);
}
return parent::render($request, $exception);
}
Route::apiResource('todos', 'TodoController');
Route::fallback(function () {
return response()->json(['message' => 'Not Found!'], 404);
});
当在数据库中找到该项时,这种方法非常有效。如果该项目不在数据库中,我会得到一个(使用浏览器时):
当使用POSTMAN rest客户端时,我得到
{
"message": "No query results for model [App\\Todo].",
"exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
....
....
我只想使用浏览器或邮递员检索404错误,文本为“未找到资源”
*使用路由信息更新*
在我的api.php中,我有以下内容:
public function render($request, Exception $exception)
{
// This will replace our 404 response with
// a JSON response.
if ($exception instanceof ModelNotFoundException) {
return response()->json([
'error' => 'Resource not found'
], 404);
}
return parent::render($request, $exception);
}
Route::apiResource('todos', 'TodoController');
Route::fallback(function () {
return response()->json(['message' => 'Not Found!'], 404);
});
在web.php中,我有:
Route::Resource('todos', 'TodoController');
实现这一目标的最佳方式是什么 确保为要检查的异常类别名
use Illuminate\Database\Eloquent\ModelNotFoundException;
如果没有此选项,您将检查
App\Exceptions\ModelNotFoundException
的实例,您如何路由端点?在routes/web.php
和routes/api.php
中,它将取决于处理请求的中间件。在web.php
中,您似乎没有定义端点。使用路由信息编辑原始帖子您是否别名为ModelNotFoundException
?不确定别名的确切含义。但是我在Exceptions>Handler.phpha中捕获了ModelNotFoundException。您是否为该类添加了别名,以便在当前文件中使用该短名称<代码>照亮\数据库\雄辩\模型未发现异常