问题标签 [codeigniter-datamapper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
865 浏览

codeigniter - 自定义模型关系

如何在codeigniter DataMapper中设置自定义或覆盖默认模型关系配置,例如外键和主键字段?谢谢

0 投票
1 回答
2145 浏览

php - 作为数组而不是 DataMapper ORM 集合对象获取

我在我的 CodeIgniter 项目中使用DataMapper ORM 。

我遇到的问题是,当我使用以下代码时:

成为 DataMapper ORM 集合对象而$o不是数组。

我知道我仍然可以使用foreach来遍历集合,但其他 PHP 数组函数(例如array_pop, array_splice)仍然无法在其上使用。

我想知道DataMapper ORM是否提供了任何函数将其作为数组返回。

非常感谢大家。

0 投票
4 回答
1450 浏览

php - CodeIgniter DataMapper ORM 如何知道要应用哪组验证规则?

我正在使用 CodeIgniter DataMapper ORM,但有些东西我不太明白。

在这个例子中,http://datamapper.wanwizard.eu/pages/examples/login.html,你可以看到$validation在 User 模型类上定义了一些规则。

login函数内部,您还可以看到它调用了$this->validate()->get(). 当validation函数运行时,它应该检查来自$validation.

我不明白的是,对于登录用例,只需要验证用户名和密码,但您可以在示例中看到与此用例无关的其他验证规则。具体来说,confirm_password定义了一条规则$validation,这条规则显然只针对更新用例,而不是登录用例。

由于我在示例中没有看到任何绕过这些不相关规则的代码,那么 DataMapper ORM 是如何真正知道函数中可以绕过这些不相关规则的login呢?

非常感谢大家。

0 投票
2 回答
2150 浏览

php - CodeIgniter DataMapper ORM v1.8.0 - 如何从多个表中获取记录

我是新手,需要一点帮助。我有2张桌子...

正如你所看到的,每个司机都有一辆与他相关的汽车。我如何查询对象中与他关联的每个驾驶员和每辆车。

我可以让所有的驱动程序使用它。

在我的驱动程序模型中有

我想获取$data['driver']中的所有记录

0 投票
6 回答
1418 浏览

php - 使用 ORM 创建嵌套关系并最小化查询

编辑 3

在阅读完船负载后,我真的不认为任何 ORM 或系统一般都可以在我使用的较少查询中建立我想要的有组织的对象的关系。如果有人可以提供一个可能的例子,我会亲吻你。

编辑 2中,我认为嵌套的 for 循环是运行的最佳解决方案

我想要一个更好的例子,因为要填充简单的项目,我可能会运行 200-500 个查询。这是不好的。

编辑 2

好吧,我玩这个已经有一段时间了,我有一些结果,但我不认为它们是“正确”的方式,这对我来说很重要。我所做的是使用该where_related方法来获取正确的对象,但我认为我的查询计数仍然很高,并且我知道 ORM 可以做得更好。当我使用 where 相关来创建适当的层次结构时,我必须使用嵌套foreach循环,我不喜欢这样。这意味着无用的查询。

这是我想出的解决方案

这会输出一个很好的分层结构,如您所见,用对象/数组填充替换回声很容易。

我宁愿拥有一个链式命令,如果可能的话,它会做同样的事情,这样范围界定也不是问题。

一些链条更像

这当然不会达到与嵌套 foreach 循环几乎相同的结果,但我想知道的是可以在没有嵌套 foreach 的情况下链接关系和填充对象

所以我只是做了一些分析,嵌套的 foreach 循环在一个小项目上生成了 63 个查询,并且需要将近半秒的时间来生成结果。这实在是太慢了。一定有更好的查询。

__________编辑 1

以下所有信息都很棒,但我一直在玩它,我似乎无法建立任何关系,更不用说 3 层了。我已经尝试了我能想到的所有内容并阅读了文档,但出于某种原因,我的大脑不喜欢 ORM。

我只想slides在一个project. 我将列出我尝试过但无济于事的清单。我的模型结构与下面的相同,我只是添加方法。

我已经尝试过我认为在幻灯片方法中逻辑相反的方法。

我做错了什么......你如何构建ORM关系?


原始问题

我第一次使用 ORM,在可视化如何构建代码以从关系中提取数据时遇到了巨大的问题。

我使用DataMapper作为我的 ORM 和CodeIgniter。我的安装工作正常,我阅读了所有文档,但我无法理解如何在控制器中获取信息

楷模 -

项目.php

幻灯片.php

形状.php

点.php

以上应该在项目->幻灯片->形状->点之间创建一个递减的一>多关系

你如何开始处理信息?当我不使用 ORM 时,我在模型中处理了所有数据处理,这对于 ORM 模型是否不正确?假设您想获得项目 1 中所有形状的所有点,您将如何构建这样的调用?

如果您愿意,我真的不需要特定的代码会有所帮助。我真正需要的是一些关于如何可视化如何分层对象的想法,以便您可以在任何层处理每个对象。

0 投票
2 回答
1485 浏览

php - 使用 DataMapper ORM for php 映射字段名称

我正在考虑将 DataMapper ORM 与 CodeIgniter 一起使用,但有一种情况是数据库结构格式不正确。

我希望能够配置我的模型以将数据库字段名称映射到更合乎逻辑的东西。然后,当我们开始更新数据库结构时,我可以只更新模型,所有引用代码将继续工作。

这可能与 DataMapper ORM 吗?

0 投票
1 回答
422 浏览

php - 我们如何在 CodeIgniter DataMapper ORM 中按不在其自己表中的列进行分组?

我正在使用DataMapper ORM,我有以下表格:

我想做的是,显示sales_records表中的所有行,包括渠道提供商名称和渠道名称,但按channel_providers表中的名称列分组。

目前,我有以下代码:

来自本页中的group_by示例:http: //datamapper.wanwizard.eu/pages/get.html

我知道我可以group_by在对象关联的表中存在的列上使用函数。但是在我的情况下,我想使用group_by的列不在它自己的表中,怎么办?

非常感谢大家。

0 投票
3 回答
1278 浏览

php - 用于 Codeigniter 关系的 DataMapper ORM

我有一张桌子...

To 和 From 是用户表中的主键id

当我使用 CodeIgniter DataMapper 获取每条消息时,如何获取用户详细信息。

0 投票
1 回答
1561 浏览

php - CodeIgniter DataMapper 关系问题

嘿,我的 Datamapper 模型中有一个非常简单的关系..

在我的模型票中,我有:

当我尝试

它说:

DataMapper 错误:“票证”不是用户的有效父关系。您的关系配置正确吗?

我没有看到问题:/

0 投票
1 回答
329 浏览

php - 在 Datamapper ORM 中循环更改对象

我正在尝试在 Codeigniter 的 Datamapper 中保存一个长表格。如果我传递这样的值,我可以保存表单

现在,如果我调用 save 方法,它可以工作

由于表单很大,我尝试在 foreach 中添加对象值

但是,如果我打电话给 $t->save()它,它就不起作用。