database - 在实现存储库模式时将自定义的 eloquent 方法放在哪里
问题描述
我正在大型 laravel 应用程序中实现存储库模式。我已将几乎所有复杂且可重用的数据库逻辑都放在这些模型存储库中,我觉得它很有帮助且更有条理。所有实体创建、检索等代码现在都存在于这些存储库中。
但我的困惑是:我应该如何处理自定义的 eloquent 方法,例如我有一个带有$model->canPerformXTask()
,$model->isActive()
等方法的模型$model->hasTooltip()
。
在某些情况下,我只想使用这些方法在控制器或服务中执行一些逻辑。如果我正在实施存储库模式,我应该如何处理这些?
- 我应该在 ModelRepository 中创建这些方法吗?
- 是否可以在存储库中使用 db 逻辑,但也可以在其外部使用雄辩的模型?
- 拥有存储库模式是否意味着“仅在存储库中使用雄辩的模型”?
对此的任何见解都将非常有帮助......
解决方案
我认为这更多的是对每个人的意见答案,关于这个话题的辩论永远不会结束。
但是,Povilas Korop在他的 youtube 频道“Laravel Dialy”上有一个专家回答,他谈到了这个话题。你可以找到它
“Laravel 代码审查:为什么不使用存储库模式?”
推荐阅读
- java - 打开数据文件,追加行和拆分数据
- reactjs - 反应钩子如何处理多个复选框
- c# - WPF:UserControl 继承/抽象的正确方法
- javascript - 如何将值从 js 传递给 python?
- azure - Azure API 管理中的 OAuth2 身份验证
- python - Newton - python 中的 CG 优化,Jacobian 问题
- php - 设置 table1.column = table2.column 对新列的可能限制
- node.js - 使用节点 js 和 graphql 使用运营商代码过滤 amadeus 航班优惠
- jwt - 采用 Keycloak、Java 后端和 Javascript 前端的 OWASP 安全建议
- vue.js - Vue v-for 键和值