Polyscope——面向 Laravel 的以代理为先的开发环境

使用 Laravel 的 attributeToArray 方法访问原始模型数据

最后更新于 经过

Accessing Raw Model Data with Laravel's attributesToArray Method image

使用 Eloquent 模型时,有时您只需要核心数据库属性,而不需要关系或计算属性。Laravel 的 attributeToArray 方法提供了一种简洁的方式来访问此原始模型数据。

// 基本用法
$用户 = 用户 :: 第一的 ();
$属性 = $用户 -> 属性到数组 ();
// Returns raw database attributes
// ['id' => 1, 'name' => 'John', 'email' => 'john@example.com']

让我们探索一个实现模型变更审计系统的实际例子:

命名空间 应用程序\模型 ;
使用 App\Models\AuditLog ;
使用 照亮\数据库\雄辩\模型 ;
班级 AuditableModel 延伸 模型
{
受保护 静止的 功能 已启动 ()
{
静止的:: 更新 功能 ($model) {
$original = $模型 -> 获取原始 ();
$当前 = $模型 -> 属性到数组 ();
// Compare only actual database attributes
$changes = 数组差异 ($current, $original);
如果 空的 ($changes)) {
AuditLog :: 创造 ([
'model_type' => 获取类 ($model),
'model_id' => $模型 -> ID,
'原来的' => json_encode ($original),
'changes' => json_encode ($changes),
'用户身份' => 授權 () -> ID (),
时间戳 => 现在 ()
]);
}
});
}
}
班级 产品 延伸 AuditableModel
{
受保护 $appends = [ 'formatted_price' , 'stock_status' ];
民众 功能 类别 ()
{
返回 $this -> 属于 类别 ::班级 (英文):
}
民众 功能 getFormattedPriceAttribute ()
{
返回 "$" 数字格式 $this -> 价格 / 100 , 2 (英文):
}
}

attributesToArray 方法提供对存储在数据库中的模型属性的直接访问,这使其非常适合需要原始数据而不需要额外的计算属性或关系的场景。

哈里斯·拉夫托普洛斯摄

高级软件工程师 • Laravel News 员工及讲师 • Laravel Greece Meetup 联合组织者

归档于:
立方体

Laravel 时事通讯

加入超过 4 万名开发者的行列,不错过任何新的技巧、教程等内容。

图像
了解软科技

以每小时 20 美元的价格聘请具备人工智能专业知识的 Laravel 开发人员。48 小时内即可开始工作。

访问 Acquaint Softtech
Kirschbaum 标志

樱桃树

提供创新和稳定性,确保您的Web应用程序取得成功。

樱桃树
几天内即可获得 Laravel 代码审查徽标的专家指导

几天内即可获得 Laravel 代码审查方面的专家指导

专家级代码审查!两位拥有 10 年以上 Laravel 开发经验的开发者将为您提供清晰、实用的反馈,帮助团队构建更优质的应用程序。

几天内即可获得 Laravel 代码审查方面的专家指导
Lucky Media 标志

幸运传媒

Get Lucky Now——拥有十余年经验的 Laravel 开发理想之选!

幸运传媒
了解 Softtech 的标志

了解软科技

Acquaint Softtech 提供 AI 就绪的 Laravel 开发人员,48 小时内即可上手,每月费用为 3000 美元,没有冗长的销售流程,并提供 100% 退款保证。

了解软科技
Shift 标志

转移

还在运行旧版本的 Laravel?立即实现 Laravel 自动升级和代码现代化,让您的应用程序保持最新状态。

转移
PhpStorm 标志

PhpStorm

首选的 PHP IDE,对 Laravel 及其生态系统提供广泛的开箱即用支持。

PhpStorm
鱼叉:新一代时间跟踪和发票标志

Harpoon:新一代时间跟踪和发票系统

新一代时间跟踪和计费软件,帮助您的机构规划和预测盈利的未来。

Harpoon:新一代时间跟踪和发票系统
Laravel Cloud 标志

Laravel 云

轻松创建和管理服务器,并在几秒钟内部署 Laravel 应用程序。

Laravel 云
SaaSykit:Laravel SaaS 入门套件徽标

SaaSykit:Laravel SaaS 入门套件

SaaSykit 是一个多租户 Laravel SaaS 入门套件,包含运行现代 SaaS 所需的所有功能,例如支付、美观的结账界面、管理面板、用户仪表盘、身份验证、现成组件、统计数据、博客、文档等等。

SaaSykit:Laravel SaaS 入门套件
SerpApi logo

SerpApi

Access real-time search engine results through a simple API—no more scraping headaches! Use it for AI applications, SEO tools, product research, travel information, and more

SerpApi
Tinkerwell 徽标

廷克威尔

Laravel 开发者必备的代码运行器。可在本地和生产环境中体验 AI、自动补全和即时反馈功能。

廷克威尔
Simple Feature Flags for Laravel with Laravel Toggle image

Simple Feature Flags for Laravel with Laravel Toggle

阅读文章
Manage Laravel Cloud Deployments Inside PhpStorm image

Manage Laravel Cloud Deployments Inside PhpStorm

阅读文章
Piper: Laravel-Style Array and String Helpers for PHP's Pipe Operator image

Piper: Laravel-Style Array and String Helpers for PHP's Pipe Operator

阅读文章
Storage Cache Store in Laravel 13.10.0 image

Storage Cache Store in Laravel 13.10.0

阅读文章
Laravel MongoDB Full-Text Search tutorial: The Art of the Relevancy image

Laravel MongoDB Full-Text Search tutorial: The Art of the Relevancy

阅读文章
Drag-and-Drop Sorting for Eloquent Models with Reorderable for Laravel image

Drag-and-Drop Sorting for Eloquent Models with Reorderable for Laravel

阅读文章