在 MVC 中连接到 DB 的位置

Posted

技术标签:

【中文标题】在 MVC 中连接到 DB 的位置【英文标题】:Where to connect to DB in MVC 【发布时间】:2011-01-15 10:50:58 【问题描述】:

我正在使用 php 并为我的 Web 应用程序构建一个 MVC。我需要连接到我的数据库,查看当前 URL,将其与我的数据库中的数据进行比较,然后将正确的内容从我的数据库返回给用户。

我的问题是,我应该将连接到数据库并对其进行处理的代码放在哪里?这会放在 Model 类中吗?

【问题讨论】:

【参考方案1】:

模型应该是主动使用数据库连接的实体,对于使用表网关/活动记录实现的简单模型可能会起作用。对于更复杂的模型,数据映射器进一步将数据库与应用程序的其余部分隔离开来(这使得更改存储后端的侵入性更小)。

您的控制器应处理请求并将所需的任何相关数据传递给模型。

也就是说,简单地建立一个数据库连接通常是由某种引导脚本完成的。然后模型(或数据映射器)使用该连接。我不确定这在技术上是否属于“控制器”。在实践中,大多数框架都有引导程序、路由器和前端控制器 - 无论您如何称呼它们,您的数据库都应该由模型使用,但由您的引导程序设置

【讨论】:

【参考方案2】:

嗯,模型只是对象的定义,例如可以是 Vehicle。因此,与数据库的连接应该在 Model 抽象类(Vehicle 类将继承)中,并带有可以保存此信息的方法。

如果你想要更多的灵活性和更高级的东西,请使用框架,我个人推荐CakePHP。

【讨论】:

【参考方案3】:

所有的数据库交互都在 Model 类中。

【讨论】:

PHP 中的模型镜像数据库中的表/列...不是连接或操作

以上是关于在 MVC 中连接到 DB 的位置的主要内容,如果未能解决你的问题,请参考以下文章

Perl 无法在 cronjob 中连接到 Oracle DB

如何在 Eclipse IDE 中连接到 mysql db? [复制]

如何在 Qt 应用程序中连接到 MySQL 服务器

无法在 React-Native 中连接到 SQLite

为啥在 SSIS 包中连接到 DB2 时出现错误 58031?

尝试在 C# 中连接到 Oracle DB 时出现问题