首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel 5.5 -找不到API ID 404而不是JSON

Laravel 5.5 -找不到API ID 404而不是JSON
EN

Stack Overflow用户
提问于 2018-02-12 00:48:15
回答 2查看 1.1K关注 0票数 1

我在Laravel5.5API路由上使用findOrFail,如下所示……

代码语言:javascript
运行
复制
public function getCategory(Request $request, $id) {

    /* Get Category From ID */
    try {
        $category = Category::with('users')->findOrFail($id);
    }

    /* catch(Exception $e) catch any exception */
    catch(ModelNotFoundException $e) {

        /* Return Success Response */
        return Response::json(array(
            'error' => true,
            'status_code' => 400,
            'response' => 'category_id_not_found',
        ));

    }
}

如果我输入了一个不存在的ID,那么我会得到一个404错误,而不是JSON响应。

我哪里错了?

更新

原来我没有包括

代码语言:javascript
运行
复制
use Illuminate\Database\Eloquent\ModelNotFoundException;

在控制器中,感谢Sohel0415让我朝那个方向看。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-12 00:53:22

试试NotFoundHttpException

代码语言:javascript
运行
复制
public function getCategory(Request $request, $id) {

/* Get Category From ID */
 try {
     $category = Category::with('users')->findOrFail($id);
 }

 /* catch(Exception $e) catch any exception */
 catch(NotFoundHttpException $e) {

     /* Return Success Response */
     return Response::json(array(
        'error' => true,
        'status_code' => 400,
        'response' => 'category_id_not_found',
    ));

 }
}

或者,您可以执行以下操作:

代码语言:javascript
运行
复制
public function getCategory(Request $request, $id) {

    $category = Category::with('users')->find($id);
    if($category!=null){
        return Response::json(array(
        'status_code' => 200,
        'category' => $category,
       )); 
    }

    return Response::json(array(
        'error' => true,
        'status_code' => 400,
        'response' => 'category_id_not_found',
    ));

 }
}
票数 1
EN

Stack Overflow用户

发布于 2018-02-12 00:52:35

findOrFail方法返回一个对象,如果找不到就抛出一个错误,就像在Laravel docs中一样,您可能希望使用find方法并使用if($category)检查模型是否存在。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48733898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档