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 文档。
这个问题是关于“正确”的设计模式,而不是关于功能代码。我想遵循最佳实践并在 Laravel.
中使用正确的功能我有一个名为 Order
的模型,其中包含用户的产品订单。
Order
有多个列,如产品、数量等,并存储在 mysql 中,并调用 belongsTo() 到 User
模型。
当我使用 OrderController
下订单时,我调用了使用 Service
class.
这是问题的主要部分:
我需要添加 API 需要的某些字段,但在我这边 总是相同的 ,所以将它们打包到他们自己的对象,只需在提交前将该对象附加到我的订单数据的末尾。
那么放置这些额外数据的“最佳”位置在哪里?在我的模型中?在服务 class 中?我倾向于服务 class,但感觉不对。
您有一个动作给出了单个或一组模型。因此,向这些结果添加一些额外数据的最佳做法是使用 JsonResource 和 ResourceCollection。通过使用它们,您可以轻松地在 ToArray 方法中添加任何您想要的内容。
Lumen 默认没有 Illuminate\Http,但您可以将其添加到您的项目中。
Official Http package of laravel
Eloquent: API Resources 文档。