ORM 和 repository 有区别吗?
看了一下l5-repository扩展提供的方法, 发现和orm的方法都很类似.
比如仓库 xx->with()->get() 和orm xx->with()->get()
仓库使用 findBy 而orm使用 xx->where()->findBy() 这样看来两者的可读性差不多呀
我正在全力开发 nature 编程语言,如果我的文章对你有帮助,希望能获得一个 star,这对我的帮助非常大。
关于 LearnKu
我的理解是model只是一条数据,而repository是数据的仓库,也就是可以对数据做批量操作.正常的查找,创建,确实没什么区别.但是如果我想批量修改数据的状态字段,把这个逻辑放到repository中看起来更合理一点.另外repository还可以做一些其他的事情.比如,我受到yii的启发,在repository中加上了filters和expands特性.具体可以看看我的代码dezsidog/laravel-repository.这里时
Yiiexpand部分的文档.@zedisdog
现在我对模型与仓库更加的明确了.
laravel的orm真的很优雅且强大, 其实在symfony中是存在repository这个东西的,symfony使用的Doctrine orm远远达不到laravel orm的功能
比如批量更新操作
User::vip()->increment('score', 5);嗯,是的,所以小项目一般也就不用repository了,model完全能搞定.
这样理解, Repository负责业务逻辑的操作 , Model层负责公共的操作
@carlclone 嗯嗯,之后的项目估计不会有repository这种东西了,也许其他框架很适用,但是在laravel 下确实不适用.
业务逻辑交给controller处理,Model做手册中的事情(最重要的就是relationship和scope的定义)