gpt4 book ai didi

php - 在 MVC 中建模数据库实体——如何创建它们?

转载 作者:搜寻专家 更新时间:2023-10-30 20:32:24 26 4
gpt4 key购买 nike

我正在开发一个 PHP 网络应用程序,我正在尝试使用 MVC 模型。我有很多东西作为“数据库实体”存在——一行或一组相关行,它们在概念上是一个人类可识别的“东西”。所以我经常尝试在模型类中为那个东西提供一个接口(interface)。

当然,工厂功能的运行是拥有一个现有实体,从中获取一些数据,有时更新它。但是,我遇到问题的地方是我需要创建一个新实体。现有实体的默认数据尚不存在!

例如,我的 __construct() 方法通常会有参数(即 $id for WHERE id = $id)所以我可以从数据库中选择数据并从该数据填充对象的所有属性。但是,当我想创建一个新实体时,这些参数的值还不存在!

你们是如何处理这种情况的?你有吗

  • 尝试为同一对象中的创建和后续操作提供功能
  • 有另一个类来生成实体
  • 避免使用 __construct 并为新实体使用 create() 和为现有实体使用 instantiate() 之类的东西
  • 还有别的吗?

最佳答案

如果您需要创建"new"对象的能力,那么我认为您的构造函数不应该默认从数据库加载。由于 PHP 不支持函数重载(因此您不能重载构造函数),您可以将构造函数中的“从数据库填充”代码删除到用于该目的的函数中,或者将 $id-type 参数一个默认值,指示不应从数据库填充属性:

function __construct($id = 0)
{
if ($id == 0)
// create with blank properties
else
// load from database
}

然后,如果您想要一个新对象,只需不带任何参数地调用它,如果您想要从数据库加载,则包括 id 参数。

关于php - 在 MVC 中建模数据库实体——如何创建它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2595030/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com