Laravel 5.5 Eloquent ORM - 模型数据转化

本文介绍了 Laravel 5.5 的 Eloquent ORM 如何将模型数据转化为数组和 JSON,包括如何隐藏和显示属性,追加非数据库字段,以及日期的序列化方式。通过 `toArray` 和 `toJson` 方法实现转化,使用 `$hidden` 和 `$visible` 控制显示的属性,`makeVisible` 和 `makeHidden` 临时改变隐藏状态,`appends` 用于追加访问器字段,并提供了自定义 Carbon 日期序列化的方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

当构建 JSON API 时,经常需要转化模型和关联关系为数组或 JSON。

Eloquent 提供了便捷方法以便实现这些转换,还可以控制哪些属性被包含到序列化中。

转化为数组

想要转化模型及其加载的关联关系为数组,可以使用 toArray 方法。

toArray 方法是递归的,所有属性及其关联对象属性(包括关联的关联)都会被转化为数组。

$user = App\User::with('roles')->first();
return $user->toArray();

还可以转化整个模型集合为数组:

$users = App\User::all();
return $users->toArray();

转化为 JSON

要转化模型为 JSON,可以使用 toJson 方法,toJson 方法也是递归的,所有属性及其关联属性都会被转化为 JSON。

$user = App\User::find(1);
return $user->toJson();

你还可以转化模型或集合为字符串,这将会自动调用 toJson 方法:

$user = App\User::find(1);
return (string) $user;

由于模型和集合在转化为字符串的时候会被转化为 JSON,你可以从应用的路由或控制器中直接返回 Eloquent 对象:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值