在 MVC 结构中工作时,DAO 是不是与 Model 相同? [复制]

Posted

技术标签:

【中文标题】在 MVC 结构中工作时,DAO 是不是与 Model 相同? [复制]【英文标题】:Is DAO the same as Model when working in MVC structure? [duplicate]在 MVC 结构中工作时,DAO 是否与 Model 相同? [复制] 【发布时间】:2014-06-28 02:39:48 【问题描述】:

在学校的后端课程中,我们逐渐了解了如何使用 MVC 结构进行 php 开发。

我们的基本“模板”包括一个 index.php(它具有到控制器中页面和功能的路由)、控制器文件夹(包含控制器)、视图文件夹和一个 DAO 文件夹,其中包含一个用于对数据库的一般访问和与数据库中每个表相关的文件。

在这个结构中,我有控制器和视图,但我想知道为什么我们从不使用模型,甚至从未有人告诉过我们...... DAO 应该是我的模型文件夹吗?

下面是一个从产品表中获取值的 DAO 代码示例,只是为了说明我所说的 DAO 的含义。

public function selectById($id) 
    $sql = "SELECT * FROM `products` WHERE `id` = :id";
    $stmt = $this->pdo->prepare($sql);
    $stmt->bindValue(':id', $id);
    $stmt->execute();
    return $stmt->fetch(PDO::FETCH_ASSOC);

【问题讨论】:

没有。模型是一个层。 【参考方案1】:

不,DAO 不是模型。如果有的话,DAO 是模型的一部分

模型不是一个单一的东西。模型基本上是整个应用程序的核心;它是 应用程序。模型包含构成您的应用程序所做的一切。它包含数据库、数据库访问层、业务对象、业务逻辑、辅助服务……一切使您的应用程序独一无二。

视图是向外部展示这个核心应用程序的地方,它允许人们查看您的应用程序所做的事情并与之交互。不同的使用场景可能有几种不同的View。控制器是协调外部世界、视图和核心模型如何协同工作的剩余粘合剂。

【讨论】:

谢谢,如果我使用 CakePhp,我现在拥有的 dao 文件应该放在模型文件夹中吗? 是和不是。 Cake 没有正确执行 MVC。 Cake 的模型本质上是一个 DAO,仅此而已。

以上是关于在 MVC 结构中工作时,DAO 是不是与 Model 相同? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在代理 testng 中工作时返回连接超时

当 URL 在浏览器中工作时,啥可能导致“连接 ETIMEDOUT”错误?

如何在 UI 线程中工作时更新进度条

谷歌地理编码 api 在 Apache Cordova 中的 Ripple 系统中工作时无法在 Android 手机中工作

iPhone 在 Xcode 中工作时不断断开连接

当mysql停止在xampp中工作时该怎么办?