关于php的mvc模型的疑惑

欣儿 发布于 2013/04/02 20:08
阅读 573
收藏 1
在php中,mvc里的模型部分是一个模型操作一个表?那如果要多表查询,是在模型里就把多表查询实现啦,还是几个表的模型已经写好,然后在控制器里实现多表的查询。是在模型的时候就实现多表的查询好,还是在每个表对应的模型把数据先查询出来,再用控制器提供的方法来连表查询好?对这个有点昏,到底mvc里的模型是一个什么角色啊?
加载中
0
帖子列表
帖子列表
M并不单是指数据库,当然如果你把它理解成数据库操作,那么无非就CRUD封装,在控制器里调用相应封装好的模型查询方法即可。
帖子列表
帖子列表
你指链表吗? 可以用原生sql或者AR或者ORM
欣儿
欣儿
但是,在里面对多表是怎么查询的啊?
0
傲罗
傲罗
m模型是负责数据库操作,有些框架是按表来建模式,有些以功能建模型,感觉以功能建模型比较好些
0
justplaymore
justplaymore
M是用来处理业务逻辑的,可以看下YII手册中的MVC最佳实践。
鲨鱼哥
鲨鱼哥
模型应该有自己的方法,对自己的业务逻辑进行一系列的封装。控制器应该用于控制这些模型的行为,或者多个模型的行为,以及多模型之间的协调工作等等,我是这么理解的。。。
justplaymore
justplaymore
@欣儿 MVC最佳实践的理念是使控制器轻量化,大量的业务逻辑的具体实现应存放于模型中,因为模型是非常容易复用的。你可以去下载YII的手册看一下,最佳实践能让项目的开发更有效率,虽然说是在MVC,但是MVC的使用还是有原则可循的,并不是网上那些人说的怎么方便怎么开发,PHP的劣势其实在于它太好用了,所以很多人是用错误的方式去开发,但如果能够严格的按照一定的规范和原则进行开发,那么项目将会非常容易维护和扩展,这是我在《深入PHP(面向对象模式与实践第3版)》这本书里看到的。
justplaymore
justplaymore
@xiaochong0302 我是以YII里的模型作为参考的,在YII中,表单和数据表映射都是属于模型里的,在验证规则时可以自定义适用的场景,对数据表的数据做修改之前或者之后都有对应的事件去触发自定义的行为。业务逻辑就可以存放于这些行为中,也就是指数据与数据之间是怎样互相影响和关联的。
欣儿
欣儿
我的感觉是业务逻辑是控制器那实现的啊
小虫0302
小虫0302
业务逻辑是个很模糊而宽泛的概念,什么是业务逻辑呢?
0
hylent
hylent

可以试试orm  开拓下思路

m确实应该是保护业务逻辑的 c也就捕获下异常 根据环境不同调用不同的m方法什么的 c能有多轻最好有多轻

hylent
hylent
回复 @欣儿 : data access object 专注数据 model就是在其上加上业务逻辑吧
欣儿
欣儿
那m跟dao层有什么关系啊?
返回顶部
顶部