首页 文章

如何返回“没有查询模型结果”的自定义API响应,Laravel

提问于
浏览
3

我正在Laravel 5.2中构建一个RESTful API .

在我的资源控制器中,我想使用隐式模型绑定来显示资源 . 例如

public function show(User $users)
{
    return $this->respond($this->userTransformer->transform($users));
}

当对不存在的资源发出请求时,Laravel会自动返回NotFoundHttpException

NotFoundHttpException

我想返回自己的自定义响应,但是如何使用路由模型绑定完成查询呢?

这样的事情能够实现吗?2744201_能够实现吗?

或者我会坚持我的旧代码,这是这样的:

public function show($id)
{
    $user = User::find($id);

    if ( ! $user ) {
        return $this->respondNotFound('User does not exist');
    }

    return $this->respond($this->userTransformer->transform($users));
}

所以我可以看到是否找不到资源(用户)并返回适当的响应 .

2 回答

  • 0

    看看你是否能 grab ModelNotFound .

    public function render($request, Exception $e)
    {
        if ($e instanceof \Illuminate\Database\Eloquent\ModelNotFoundException) {
            dd('model not found');
        }
    
        return parent::render($request, $e);
    }
    
  • 2

    我认为一个好地方将在 Handler.php 文件 /app/Exceptions

    public function render($request, Exception $e)
    {
        if ($e instanceof NotFoundHttpException) {
            // return your custom response
        }
    
        return parent::render($request, $e);
    }
    

相关问题