请教大家一个 ORM 代码抽离的问题

原来在service层的这段代码,想把Test表的sql抽离到model层,怎么做比较好? (type后面的’.’是打错了)

我是这么写的,不知道对不对
service层

model层

houmuxu
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 7

先改造一下代码,把if换成when()吧 还有这个是什么玩意?

file

4年前 评论
houmuxu (楼主) 4年前

model层不能写任何查询代码;即使要写也只能新加一层里面写。 request不能在service里面出现,request是请求层的代码;不能侵入。

4年前 评论
houmuxu (楼主) 4年前

file User $user可以依赖注入,参数最好加个isset判断

4年前 评论

很明显属于过度封装,违法面向对象特性 -- 封装,model 掺杂业务逻辑,方法复用性不高,随着业务复杂性增加,类似这样的方法会增加

4年前 评论
王成涛 (作者) 4年前
s51983 4年前
xiaopi 4年前
乘风破浪 4年前

小白弱弱的说,感觉完全没必要那么封装。。。。。model里别放具体业务查询了吧(除非特别公用的.....
感觉不仅没抽离,还越来越混乱了呢......

4年前 评论
houmuxu (楼主) 4年前

file
(个人讨厌的写法 同事也跟我抱怨过 为什么写这么多余代码(封装))


抽离的话,可以考虑下apiato (单人开发最好别碰)。

route -> controller -> action -> task -> repository -> model | criterias -> transformers
……

还是 mvc 香,简单。

(单人开发,随便怎么封装都可以)
封装可以参考下:基于教程实现的一个简单网站实例

4年前 评论

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