登录  /  注册

mvc模式中的model的作用的疑问

php中文网
发布: 2016-10-17 09:30:06
原创
1206人浏览过

mvc中的m(model)代表模型,主要用来操作数据,那么对数据进行简单处理到底应该在c层还是在m层呢。

<code>$sql = "SELECT id, name FROM test_table"
$result = $conn-&gt;query($sql);
$data = $result-&gt;getAll();</code>
登录后复制
登录后复制

在上述代码中,假如我需要把data改成以id为键的数组,那么这个操作应该在m层还是在c层呢?

回复内容:

mvc中的m(model)代表模型,主要用来操作数据,那么对数据进行简单处理到底应该在c层还是在m层呢。

<code>$sql = "SELECT id, name FROM test_table"
$result = $conn-&gt;query($sql);
$data = $result-&gt;getAll();</code>
登录后复制
登录后复制

在上述代码中,假如我需要把data改成以id为键的数组,那么这个操作应该在m层还是在c层呢?

个人观点:M层比较好吧
你既然用MVC了,就是为了降低耦合程度,提高可扩展性。
混着写的话不利于以上两个目的。
当然如果本身项目不大的话,其实也没必要用mvc结构。

根据你的示例里面的问题,我觉得你可以用closure function 的办法来做,比如model class 里面定义一个dataFormat的方法,然后调用返回数据的时候调用一下,这个dataFormat再使用你传入类的closure function 来处理你这个返回数据,这样比较灵活

其实都行,具体看你的接口需求,不用太纠结!因为这个问题我也问过我老师,我说C层是负责控制页面跳转以及封装请求数据调取接口,而M层是对C层调用接口参数校验以及数据处理返回,那具体是什么业务逻辑放在哪里,其实这都是我们根据自己设计程序的需求去做的

所以不用太纠结

model的出现就是为了把数据层全部控制在model,为什么这样做?

<code>耦合性降低了、可读性、维护、扩展性都得到了提高。
</code>
登录后复制

mvc 的 c 是拿来衔接model和view的

MVC的核心思想是分离界面(View),逻辑(Controller),数据(Model).
对于Web应用来说,过程就是C调用M输出V.

页面控制器:

<code>/post.php?a=create
/post.php?a=read&amp;id=1024
/post.php?a=update&amp;id=1024
/post.php?a=delete&amp;id=1024</code>
登录后复制

模型(CRUD):

<code>function post_create() {}
function post_read() {}
function post_update() {}
function post_delete() {}</code>
登录后复制

视图:
/view/post.php

可见对数据模型post的CRUD操作函数当然还是汇总在/include/funclass.php中好,方便在其他控制器中也能调用.总之就是你觉得你这个操作其他控制器也需要用到,那你就可以考虑封装成函数或者类放到funclass.php里"共享".

肯定在控制器里面操作

加粗文字请输入代码



智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号