Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 未找到Laravel API接收JSON 404_Php_Laravel - Fatal编程技术网

Php 未找到Laravel API接收JSON 404

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 $

我正在开发一个Laravel5.6API,我正在使用资源和集合,路由模型绑定

要显示项目,我当前在控制器中使用以下代码:

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。您是否为该类添加了别名,以便在当前文件中使用该短名称<代码>照亮\数据库\雄辩\模型未发现异常