首页 > php框架 > Laravel > 正文

Laravel API资源(Resource)怎么格式化JSON输出

冰火之心
发布: 2025-11-12 17:07:55
原创
657人浏览过
答案:Laravel API资源用于将模型转换为结构化JSON响应,通过自定义Resource类控制输出字段,如UserResource定义id、name、email等,支持条件字段(如when判断权限)、集合处理(collection方法)及元数据附加(additional或with方法),提升API数据一致性与可维护性。

laravel api资源(resource)怎么格式化json输出

在 Laravel 中,API 资源(Resource)用于将模型和模型集合转换为结构清晰、统一格式的 JSON 响应。通过自定义资源类,你可以精确控制返回给前端的 JSON 数据结构。

使用 API Resource 格式化输出

Laravel 提供了 ApiResource 类来封装模型数据。当你需要返回用户信息时,可以创建一个 UserResource 来定义输出字段。

php artisan make:resource UserResource

生成的资源类会包含一个 toArray 方法,用于定义 JSON 输出:

app/Http/Resources/UserResource.php

public function toArray($request)
{
    return [
        'id' => $this->id,
        'name' => $this->name,
        'email' => $this->email,
        'created_at' => $this->created_at->toISOString(),
    ];
}
登录后复制

在控制器中使用:

use App\Http\Resources\UserResource;
use App\Models\User;

return new UserResource(User::find(1));
登录后复制

处理资源集合

当返回多个模型时,使用 collection 或资源集合类:

Find JSON Path Online
Find JSON Path Online

Easily find JSON paths within JSON objects using our intuitive Json Path Finder

Find JSON Path Online 30
查看详情 Find JSON Path Online

  • 直接使用资源的 collection 方法:
  • return UserResource::collection(User::all());
    登录后复制
  • 或创建独立的集合资源:
  • php artisan make:resource UserCollection

添加条件字段

某些字段可能只在特定条件下返回,比如管理员才能看到邮箱

use Illuminate\Http\Resources\MissingValue;

'email' => $this->when(auth()->user()?->isAdmin(), $this->email),
登录后复制

when 方法会在第一个参数为 true 时包含该字段,否则自动排除。

附加元数据(Meta Data)

你可以在资源响应中添加分页信息或自定义元数据:

return (new UserResource($user))
    ->additional([
        'meta' => [
            'timestamp' => now(),
            'version' => '1.0'
        ]
    ]);
登录后复制

也可以在资源类中重写 with 方法统一添加:

public function with($request)
{
    return [
        'success' => true,
    ];
}
登录后复制

基本上就这些。通过合理使用 Laravel 的 API 资源机制,你能轻松实现结构一致、可维护性强的 JSON 输出。

以上就是Laravel API资源(Resource)怎么格式化JSON输出的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号