ORM 和 repository 有区别吗?

看了一下l5-repository扩展提供的方法, 发现和orm的方法都很类似.
比如仓库 xx->with()->get() 和orm xx->with()->get()

仓库使用 findBy 而orm使用 xx->where()->findBy() 这样看来两者的可读性差不多呀

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 5

我的理解是model只是一条数据,而repository是数据的仓库,也就是可以对数据做批量操作.正常的查找,创建,确实没什么区别.但是如果我想批量修改数据的状态字段,把这个逻辑放到repository中看起来更合理一点.另外repository还可以做一些其他的事情.比如,我受到yii的启发,在repository中加上了filters和expands特性.具体可以看看我的代码dezsidog/laravel-repository.这里时 Yii expand部分的文档.

5年前 评论

@zedisdog
现在我对模型与仓库更加的明确了.

laravel的orm真的很优雅且强大, 其实在symfony中是存在repository这个东西的,symfony使用的Doctrine orm远远达不到laravel orm的功能

比如批量更新操作
User::vip()->increment('score', 5);

5年前 评论

嗯,是的,所以小项目一般也就不用repository了,model完全能搞定.

5年前 评论

这样理解, Repository负责业务逻辑的操作 , Model层负责公共的操作

5年前 评论

@carlclone 嗯嗯,之后的项目估计不会有repository这种东西了,也许其他框架很适用,但是在laravel 下确实不适用.
业务逻辑交给controller处理,Model做手册中的事情(最重要的就是relationship和scope的定义)

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!