问题标签 [doctrine]

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 投票
2 回答
1615 浏览

php - 学说命名查询:指定查询调用的限制

让我们想象一下这样的事情:

后来我可以做这样的事情:

有什么方法可以在使用命名查询时设置限制,而不是在定义它时?我真的很想做这样的事情:

或者

提前谢谢!:-)

0 投票
7 回答
34084 浏览

php - 使用 PHP Doctrine ORM 的复杂 WHERE 子句

我正在使用 PHP Doctrine ORM 来构建我的查询。但是,我似乎不太明白如何使用 DQL(Doctrine Query Language)编写以下 WHERE 子句:

如何指定括号的位置?

我目前在我的 PHP 代码中拥有的是:

但这会产生类似

由于操作顺序,它不会返回预期的结果。

另外,“where”、“andWhere”和“addWhere”方法之间有区别吗?

UPDATE 好的,您似乎无法使用 DQL 进行复杂的查询,所以我一直在尝试手动编写 SQL 并使用 andWhere() 方法来添加它。但是,我正在使用 WHERE..IN 并且 Doctrine 似乎正在剥离我的括号:

0 投票
1 回答
9223 浏览

php - 教义原始 sql 和准备好的语句

我有一个使用准备好的语句的 Doctrine_RawSql 查询。但是,在生成 SQL 查询时,它们似乎被忽略了。但是如果我省略了标记值,我会得到一个关于绑定变量数量不匹配的异常(所以它至少试图将它们分入)。

如果我在内联包含这些值,Doctrine 是否在幕后做任何事情来防止 SQL 注入?

这是我的代码:

这提供了以下 SQL 输出:

编辑: 上的属性$location设置正确。如果我对参数进行硬编码:

我遇到了与未替换令牌相同的问题。

0 投票
1 回答
1120 浏览

php - Doctrine_RawSql 自定义 Select

我在使用自定义选择生成一个教义_rawsql 时遇到问题。

这是我的rawsql

如果我这样做$q->getSql(),距离不会出现在生成的 sql 中。

有任何想法吗?我做错了什么?

0 投票
1 回答
294 浏览

php - 教义记录应该做多少?

我正在创建自己的 CMS 并为数据库使用学说。

现在我想知道,当我创建 Post 记录时,该记录应该做多少工作?

一个例子:

我有 Post -> Categories 关系(一对多),我应该创建单独的函数来附加类别(以查看 Post 是否已经有类别等)还是 Post 应该使用访问器/突变器来做到这一点?

最佳做法是什么?

0 投票
4 回答
26589 浏览

php - 在 Doctrine ORM 中实现“如果存在则更新”

我正在尝试进行INSERT OR UPDATE IF EXISTS一项交易。

mysql中,我通常会使用DUPLICATE KEY("UPDATE ON DUPLICATE KEY"。) 我知道使用各种 SQL 变体和子查询来解决这个问题的许多解决方案,但我正试图在 Doctrine (PHP ORM) 中实现这一点。似乎有 Doctrine 方法可以做到这一点,因为它的功能如此丰富,但我没有找到任何东西。出于某种原因,使用 PHP ORM 包会出现这种问题吗?或者是否有任何 Doctrine 专家知道如何通过黑客或任何方式实现这一目标?

0 投票
3 回答
747 浏览

php - 你可以用“IF”开始一个mysql语句吗?

我正在尝试在 mysql 中实现“IF 记录存在,然后更新 ELSE INSERT”。具体来说,我必须弄清楚如何使用 Doctrine ORM 做到这一点。

使用本机 MySql 的一种解决方案是使用“ON DUPLICATE KEY UPDATE”。不幸的是,Doctrine 不支持这一点。

另一个半解决方案是使用“REPLACE INTO”语法。Doctrine 支持这一点,但是 REPLACE 不会更新记录,而是删除记录并创建一个新记录(使用新的自动增量 ID。)因此,如果您像我一样依赖自动增量 ID,这是一个糟糕的解决方案.

我正在尝试操作的表是 INNODB,所以我研究了事务,但我不完全理解相同的规则是否适用于事务内部和应用在它们之外。

我可以在事务中说“IF(INSERT IGNORE INTO table critical_id= $id) THEN exit ELSE (UPDATE table SET = 'new_value')”吗?field

如果我不能说这样的话,有没有办法解决这个问题?

0 投票
4 回答
791 浏览

php - 幕后:ORM 是如何“思考”的?

我对 Rails ActiveRecord、Doctrine for PHP(和类似的 ORM)背后的一些设计很感兴趣。

  • ORM 如何实现链式访问器之类的功能以及它们通常工作的深度?
  • ORM 如何在内部构造查询?
  • ORM 如何管理查询,同时保持对它的期望的任意性?

显然这是一个学术问题,但欢迎所有性质的答案!

(我选择的语言是OO PHP5.3!)

0 投票
1 回答
9299 浏览

mysql - 让 MAMP 无法与 PDO-MySQL 一起工作

问题:由于驱动程序问题,Doctrine 测试应用程序无法正常工作。

设置:Mac OS X 10.5.7(不是服务器)、MAMP 1.7.2、Doctrine 2.2.1、PHP 5.2.6

我正在按照学说文档尝试在我的本地机器上设置开发环境。从网络(通过 MAMP)运行页面的输出显示一个空屏幕(我假设是因为错误没有通过 MAMP 显示)。如果我在我的测试环境(Debian Lenny)上运行该页面,一切都会完美运行,并且屏幕上有输出。

我一直试图弄清楚几个小时,但我没能做到。任何见解都值得赞赏。

这是从命令行运行时的输出。

这是test.php

这是bootstrap.php

如果我通过 MAMP 页面运行 phpinfo(),我会看到几行使它看起来像安装了 PDO-MySQL

0 投票
2 回答
1605 浏览

php - symfony 中的教义迁移不会更新模型和表单

我一直在 symfony 中测试 Doctrine 迁移,我终于让它们工作了,但我注意到这些迁移只更新数据库。表格和模型没有像我预期的那样更新......

这是正常的吗?如果正常,有没有办法用对数据库所做的更改来更新模型?