当前位置: 首页 > 知识库问答 >
问题:

在实现存储库模式时,将自定义雄辩方法放在何处

谢誉
2023-03-14

我正在一个大型laravel应用程序中实现存储库模式。我已经将几乎所有复杂的和可重用的数据库逻辑放在这些模型存储库中,我觉得它很有用,而且更有条理。所有实体创建、检索等代码现在都位于这些存储库中。

但是我的困惑是:我应该如何处理自定义雄辩的方法,例如,我有一个模型,其中包含诸如$mod-的方法

有些情况下,我只想使用这些方法在控制器或服务中执行一些逻辑。如果我正在实现存储库模式,我应该如何处理这些?

  • 我应该在ModelRepository中创建这些方法吗

对此的任何见解都将非常有用。。。


共有1个答案

岳俊晖
2023-03-14

我认为这更像是对每个人的意见回答,关于这个话题的辩论永远不会结束。

但是,Povilas Korop在他的youtube频道“Laravel Dialy”上给出了一个专家答案,他在那里谈到了这个话题。你可以用它找到它

“Laravel代码审查:为什么不使用存储库模式?”

 类似资料:
  • 根据Laravel Docs的说法: 默认情况下,时间戳的格式为Y-m-d H: i: s。如果需要自定义时间戳格式,请在模型上设置$dateFormat属性。此属性确定日期属性在数据库中的存储方式,以及模型序列化到数组或JSON时的格式 我想将所有创建的\u at和更新的\u at值存储为整数unix时间戳。 我应该为受保护的$dateFormat变量设置哪些值而不使用日期变量?

  • 假设我想有一个方法,它是获得超级主要客户,它有。 其中声明了方法。 然后我的公开存储库界面变成以下内容: 它扩展了和my。 我写的 bot不知道,在实现中写什么。如何接触客户?

  • 项目配置为使用多个MongoTemplate Mongo Ref传递为 问题:我需要访问MongoTemplate,它是类似的标准存储库。 例如,如果正在将接口扩展为 MyRepoCustomImpl 问题:相反,难道没有任何方法可以让要使用的MongoTemplate根据它扩展到的Repo自动注入或解析吗?

  • 在我的项目中有几个实体具有相同的属性(对于示例'name'),所以,有可能创建一个存储库,其中使用自定义的select(实体)?因此,我从JpaRepository扩展了我的存储库,我扩展了MyCustomJpaRepository,MyCustomJpaRepository也扩展了JpaRepository,使其能够从JpaRepository授予基本功能? TKS

  • 我使用的是Spring数据JPA1.10.11。释放 我有一个基础存储库,所有其他存储库都会扩展它。这部分有效。 我还想为一些要扩展的存储库声明一个自定义接口。所以我声明了一个接口和一个“Impl”类: 然后,我创建一个现有的工作存储库来扩展这个新接口: 注意:此存储库在扩展TestRepository之前工作,但是在如上扩展之后,应用程序上下文将无法以错误开始: 配置如下所示: 我觉得我一直在遵

  • 我正在做一个项目,我们有很多实体,我们将在这些实体上进行CRUD操作。我创建了一个基本实体类,在所有其他实体中,我扩展了基本实体类,该类具有诸如created\u date、created\u by、last\u updated\u date、last\u updated\u by等公共字段。现在,我想在Spring CrudRepository方法上实现aspect,并在保存时设置上述字段。 我