相关疑难解决方法(0)

Handler.php 中的渲染函数不起作用 Laravel 8

ModelNotFoundException发生时,我想返回一个 JSON 响应而不是默认的 404 错误页面。为此,我将以下代码写入app\Exceptions\Handler.php

public function render($request, Exception $exception)
{
    if ($exception instanceof ModelNotFoundException) {
        return response()->json([
            'error' => 'Resource not found'
        ], 404);
    }

    return parent::render($request, $exception);
}
Run Code Online (Sandbox Code Playgroud)

但是它不起作用。当ModelNotFoundException发生时,Laravel 只显示一个空白页面。我发现,即使是在宣告一个空的渲染功能Handler.php品牌Laravel上显示空白页ModelNotFoundException

我该如何解决这个问题,以便它可以返回 JSON/执行覆盖渲染函数中的逻辑?

php laravel laravel-8

9
推荐指数
2
解决办法
5043
查看次数

Laravel API 返回视图 404 错误而不是 JSON 错误

我正在尝试使用 laravel 创建 RESTful API,我正在尝试获取具有无效 ID 的资源,结果是 404,因为找不到它,但我的问题是响应不是 JSON 格式,而是视图404(默认)与 HTML。有什么方法可以将响应转换为 JSON 吗?对于这种情况,我使用Homestead。

我尝试包含一条后备路线,但它似乎不适合这种情况。

Route::fallback(function () {
    return response()->json(['message' => 'Not Found.'], 404);
});
Run Code Online (Sandbox Code Playgroud)

我尝试修改处理程序(App\Exceptions),但没有任何变化。

public function render($request, Exception $e)
{
    if ($e instanceof ModelNotFoundException) {
        if ($request->ajax()) {
            return response()->toJson([
                'message' => 'Not Found.',
            ], 404);
        }
    }

    return parent::render($request, $e);
}
Run Code Online (Sandbox Code Playgroud)

laravel

7
推荐指数
2
解决办法
1万
查看次数

标签 统计

laravel ×2

laravel-8 ×1

php ×1