问题标签 [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 回答
389 浏览

php - CodeIgniter and ORM (datamapper)

i'm new to php and codeigniter but i have experience with pylons and sqlalchemy.

there you define model classes and then you use command something like "paster setup-app development.ini" and (paster?) creates tables for you and you dont have to write any sql code...

i was trying this with codeigniter and datamapper but so far i'm not sure if it is possible. so here i am asking you if it is possible?

i am very confused because in "models/" you can put your own classes (like in sqlalchemy). in these classes you define every attribute, relationship and other stuff. so why would you need to write the same thing 2 times? (1st in this class 2nd in sql script)

0 投票
1 回答
301 浏览

php - CodeIgniter 和 DataMapper ORM

我正在使用示例错误应用程序中的基本登录管理器,但我的主管理控制器现在有大约 25 个函数,并且在我需要调用的每个函数的开头

是否有一种简单的方法可以在每个函数中自动完成此检查,或者我是否必须沿着 MY_Controller 路由然后从中继承。

我当前的构造函数看起来像这样

0 投票
1 回答
381 浏览

php - 如何在基于 FK 关系的 DataMapper PHP 构造函数中水合自定义属性

所以我有两个对象。

我最终想要完成的是Product->$averageRating使用基于与 ProductRatings 的 FK 关系的平均评级来填充属性。

我的第一个想法是访问关系,根据 ProductRating 行数进行数学运算,然后在构造函数中填充属性。但是我什至在访问构造函数中的对象时遇到了问题。这让我相信我可能会以错误的方式解决这个问题。如何使用 DataMapper 实现这一点?

我知道数学可以在视图页面中完成,但如果可能的话,我真的很想将它保留在模型中。

0 投票
1 回答
1333 浏览

codeigniter - CodeIgniter 如何使用 database.php 连接多数据库进行第一次连接和 Model 进行第二次连接

我有很多数据库连接我在 database.php 文件中有主要连接

而且我有更多的连接..但我必须使用 [模型]配置另一个连接

我可以将参数传递给 database.php 吗?

或者我可以把这个代码放在模型中吗

0 投票
2 回答
160 浏览

codeigniter - 连接数据库 CodeIgniter

我需要为许多数据库连接 database.php 中的主要连接,这没有问题

但另一个连接必须在模型中

我用这个类

但连接不工作它仍然与主数据库连接

错误号:1146 表“countries.ci_users”不存在

注意:我不会使用 database.php 文件中的另一个连接,因为我有超过 100 个连接

0 投票
1 回答
1888 浏览

php - CodeIgniter DataMapper 慢吗?

我一直在使用 Codeigniter 研究关系数据库,发现 DataMapper 对于严肃的项目毫无用处。Codeigniter 的活动记录没有用,因为它也没有提供多对多或一对多的方法。DataMapper 速度慢且不可配置!

  1. 当您查询时,它将整个表加载到一个对象中。
  2. 当您第一次输入“A”第二次输入“A”时,数据库中将有 2 个 As。它没有像 SQL 这样的 Ignore 选项。您必须查询一个项目以查看它是否存在,如果不存在,则插入它。
  3. 他们为它做了很多编码,但它似乎对建立一个庞大的数据库没有任何好处
  4. 查询速度不快。

这似乎是社区之间的共识。是否推荐在php中使用纯mysql对多对多和一对多进行操作?还是你认为我错了!请随时给我建议。我的问题是,作为一名专业的网页设计师,你用什么来做你的数据库?

0 投票
1 回答
116 浏览

php - Datamapper ( city ) 中的表名错误

我有一个名为 City in datamapper for codeigniter 的模型。我将表的名称保留为“城市”,因为 datamapper 需要复数形式的表名称。现在,当我在控制器中为模型创建对象时( $c = new City(); );我收到以下错误:在第 61 行调用 C:\wamp\www\project\application\controllers\userhome.php 中非对象的成员函数 where()。

这是我用过的模型

正如您在模型中看到的那样,我尝试将表名分配给现在我已经评论过的变量。我也得到了错误。

这些是我在控制器中使用的代码。

请帮帮我。提前致谢...

0 投票
2 回答
860 浏览

php - 数组被php中的最后一个元素覆盖

存储的结果$g是 1 和 2。我在下面编写的以下代码,我$array['music']只存储最后一个元素 2。但我想要的是在 foreach 下执行我的 sql 查询 2 次并匹配其值为$g1和2 mu_idmu_id是另一个表的列名music)并将第1行和第2行的所有行数据存储到$array['music']

它仅存储第二行 (2) 而不是 1,或者在循环内第二次执行时覆盖它。如果有任何逻辑使它起作用,请告诉我。

0 投票
1 回答
1021 浏览

php - 避免重复数据映射器代码点火器中的数据库记录

我的问题只是如何将数据插入连接表(user_book)而不在主表(book)中插入重复条目。

主要考虑我们有下面的树表

但问题是当我插入 Books 表中存在的新书(例如 Mike,如 B3)时。副本将出现在 books 表中,上表如下:

现在我要解决的问题有意义吗?或者也许我根本没有唯一的书籍清单?

如果我要插入鉴于数据库用户和书籍用户<--->书籍与 users_books 相关,我们需要确保当我们将书籍记录插入数据库时​​它不是重复的。此外,如果书存在,则将插入关系而不是书记录。怎么可能做到这一点?一种方法是说

if (book->exist) in the "books" table 然后检查关系,看看用户和书籍之间是否存在关系,如果存在则不要插入它。此外,我是否需要更改 mysql db 结构中的任何内容以避免这种情况。

上面的代码不起作用,但应该让我知道我在说什么。

更新:

总之,如果两个用户喜欢同一本书,我只想在连接表 (users_books) 中插入一条记录(book),而不是在表中创建新记录。使用唯一 sql 标记不起作用,因为它保留唯一列表,但它阻止将多个关系插入连接表 users_books。

0 投票
3 回答
56194 浏览

php - 如何使用Datamapper计算Codeigniter中查询返回的行数

我在 codeigniter 的控制器中使用以下查询。

在上面的代码中,“$u”是数据映射器“User”的类“User”的对象名称,其中我的数据库中的表名是“users”。我想看看执行查询后返回了多少行。即使用户名和密码不匹配,“$total”也始终显示 1。我想要的是,如果返回的行数为 1,那么“ok”,否则“有问题”。我知道它的基本知识,但如果有人知道它,请帮助我。提前致谢。