gpt4 book ai didi

php - Datamapper (Overzealous Edition), Codeigniter 和有很多说明

转载 作者:行者123 更新时间:2023-11-29 03:14:12 26 4
gpt4 key购买 nike

首先,我想表明我是一个 ORM 菜鸟。我一生中从未使用过 ORM,并且在我的日常开发中达到了一个点,我需要做一些疯狂的高级关系,我相信 Datamapper Overzealous Edition 可以在我使用 Codeigniter 时帮助我。

在我的数据库中有以下表格;

用户
项目
客户
任务

这是我想要的表之间的关系;

  • 一个用户可以属于多个项目。
  • 一个项目可以有多项任务,但只能有一个客户。
  • 一个客户可以有很多用户,也可以有很多项目
  • 一项任务只能有一个项目

我试图在模型目录中设置我的模型,正如文档中所说的那样,模型名称末尾没有 s,因此对于用户,我有一个 user.php 模型等等。

我知道文档很棒,但我似乎无法正确理解它,尽管它显然非常简单。我知道你通过例如 $u = new User(); 来实例化模型。在您的 Controller 内部,但我的问题是在模型内部建立关系。

我如何设置我的模型以具有上述关系,例如,当我获取任务时,我可以看到它属于哪个项目以及来自其关联数据库表的一大堆信息。

我注意到在文档中,您在项目模型中使用了以下内容,它应该告诉它一个项目可以有多个任务; var $has_many = array('任务')

仅此而已吗?是否像定义 $has_many 和 $has_one 变量并将关联的模型名称放入数组中一样简单?

最佳答案

我从未使用过这个特定的 ORM,但我确实使用了 Doctrine。如果您正在使用的那个以几乎相同的方式工作,那么您的问题的简单答案是 - 是的!使用 Doctrine,您可以在模型类中设置所有关系。然后 ORM 将为您管理这一切。因此,例如,如果您实例化一个新的任务对象... $任务=新任务();然后您可以通过简单地编写来访问与 Project 表的关系 $任务->项目;

我必须强调,上面的代码不是为 datamapper 编写的,因此可能无法按原样运行,但我希望它能为您解决问题。听起来您确实理解文档,但就是不相信!!!!

关于php - Datamapper (Overzealous Edition), Codeigniter 和有很多说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3498967/

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