常规问题,你们在写MVC的时候....

2010-12-05 20:34:44 +08:00
 killall
MVC架构的程序你在写“添加数据”的时候是直接在控制器里面insert,还是在模型里面建立一个带有参数的model方法 然后 当控制器输入的时候 通过这个MODEL方法写入数据库?
5816 次点击
所在节点    PHP
15 条回复
TheOnly92
2010-12-05 20:35:43 +08:00
后者 +1
MarkFull
2010-12-05 20:41:04 +08:00
似乎有一个database access layer来管这件事情,在controller和model之间
http://en.wikipedia.org/wiki/Data_access_object
killall
2010-12-05 20:44:32 +08:00
后者 貌似很繁杂啊
killall
2010-12-05 20:45:50 +08:00
@MarkFull 不知道这是什么?
TheOnly92
2010-12-05 20:46:28 +08:00
利用 mysqli 呀,楼主有使用任何 framework 吗?
darcy
2010-12-05 20:47:52 +08:00
各司其职,控制器做流程控制,验证和保存数据交给模型(model)来做。
Sunyanzi
2010-12-05 21:13:16 +08:00
一定是后者 ... 不然还要 Model 做什么 ...
highkay
2010-12-05 21:47:26 +08:00
前者是贫血模型,后者是充血模型。
java里面贫血比较多,常见的一个bean就是一个model。

谈不上好坏,具体和你的项目以及你用的框架决定。
killall
2010-12-05 22:15:13 +08:00
谢谢,受教了。
POPOEVER
2010-12-05 22:24:53 +08:00
Model
voidman
2010-12-05 22:50:27 +08:00
Model +1
qichangxing
2010-12-06 22:20:49 +08:00
# models/post.py

def new(title, content):
db.insert(tb, title, content)
return True


# contorllers/post.py

from models import post

Class Post:

def POST(self):
i = web.input()
title = i.get('title', None)
content = i.get('content', None)
if not (title and content):
# warning...
post.new(title, content)
raise web.redirect(...)
chuck911
2011-04-29 15:05:52 +08:00
看情况,如果太简单就一句话就不要封到model里面了
如果把model当成领域对象,那就不要只把它当成免写sql的工具
看你自己的感觉~重要的是,敏捷
apoclast
2011-04-29 15:42:18 +08:00
@highkay 这种说法还是第一次遇到, 不过真有意思
no2x
2011-04-29 15:47:23 +08:00
后者 + 1,识别读写,识别数据库,识别表

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/5453

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX