Laravel 模型的 "extra" 默认字段应该放在哪里?

Where do I put "extra" default fields for a Laravel model?

这个问题是关于“正确”的设计模式,而不是关于功能代码。我想遵循最佳实践并在 Laravel.

中使用正确的功能

我有一个名为 Order 的模型,其中包含用户的产品订单。

Order 有多个列,如产品、数量等,并存储在 mysql 中,并调用 belongsTo() 到 User 模型。

当我使用 OrderController 下订单时,我调用了使用 Service class.

设置的外部 API

这是问题的主要部分:

我需要添加 API 需要的某些字段,但在我这边 总是相同的 ,所以将它们打包到他们自己的对象,只需在提交前将该对象附加到我的订单数据的末尾。

那么放置这些额外数据的“最佳”位置在哪里?在我的模型中?在服务 class 中?我倾向于服务 class,但感觉不对。

您有一个动作给出了单个或一组模型。因此,向这些结果添加一些额外数据的最佳做法是使用 JsonResource 和 ResourceCollection。通过使用它们,您可以轻松地在 ToArray 方法中添加任何您想要的内容。 Lumen 默认没有 Illuminate\Http,但您可以将其添加到您的项目中。
Official Http package of laravel
Eloquent: API Resources 文档。