问题标签 [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.
php - 学说命名查询:指定查询调用的限制
让我们想象一下这样的事情:
后来我可以做这样的事情:
有什么方法可以在使用命名查询时设置限制,而不是在定义它时?我真的很想做这样的事情:
或者
提前谢谢!:-)
php - 使用 PHP Doctrine ORM 的复杂 WHERE 子句
我正在使用 PHP Doctrine ORM 来构建我的查询。但是,我似乎不太明白如何使用 DQL(Doctrine Query Language)编写以下 WHERE 子句:
如何指定括号的位置?
我目前在我的 PHP 代码中拥有的是:
但这会产生类似
由于操作顺序,它不会返回预期的结果。
另外,“where”、“andWhere”和“addWhere”方法之间有区别吗?
UPDATE 好的,您似乎无法使用 DQL 进行复杂的查询,所以我一直在尝试手动编写 SQL 并使用 andWhere() 方法来添加它。但是,我正在使用 WHERE..IN 并且 Doctrine 似乎正在剥离我的括号:
php - 教义原始 sql 和准备好的语句
我有一个使用准备好的语句的 Doctrine_RawSql 查询。但是,在生成 SQL 查询时,它们似乎被忽略了。但是如果我省略了标记值,我会得到一个关于绑定变量数量不匹配的异常(所以它至少试图将它们分入)。
如果我在内联包含这些值,Doctrine 是否在幕后做任何事情来防止 SQL 注入?
这是我的代码:
这提供了以下 SQL 输出:
编辑: 上的属性$location
设置正确。如果我对参数进行硬编码:
我遇到了与未替换令牌相同的问题。
php - Doctrine_RawSql 自定义 Select
我在使用自定义选择生成一个教义_rawsql 时遇到问题。
这是我的rawsql
如果我这样做$q->getSql()
,距离不会出现在生成的 sql 中。
有任何想法吗?我做错了什么?
php - 教义记录应该做多少?
我正在创建自己的 CMS 并为数据库使用学说。
现在我想知道,当我创建 Post 记录时,该记录应该做多少工作?
一个例子:
我有 Post -> Categories 关系(一对多),我应该创建单独的函数来附加类别(以查看 Post 是否已经有类别等)还是 Post 应该使用访问器/突变器来做到这一点?
最佳做法是什么?
php - 在 Doctrine ORM 中实现“如果存在则更新”
我正在尝试进行INSERT OR UPDATE IF EXISTS
一项交易。
在mysql中,我通常会使用DUPLICATE KEY
("UPDATE ON DUPLICATE KEY"。) 我知道使用各种 SQL 变体和子查询来解决这个问题的许多解决方案,但我正试图在 Doctrine (PHP ORM) 中实现这一点。似乎有 Doctrine 方法可以做到这一点,因为它的功能如此丰富,但我没有找到任何东西。出于某种原因,使用 PHP ORM 包会出现这种问题吗?或者是否有任何 Doctrine 专家知道如何通过黑客或任何方式实现这一目标?
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
如果我不能说这样的话,有没有办法解决这个问题?
php - 幕后:ORM 是如何“思考”的?
我对 Rails ActiveRecord、Doctrine for PHP(和类似的 ORM)背后的一些设计很感兴趣。
- ORM 如何实现链式访问器之类的功能以及它们通常工作的深度?
- ORM 如何在内部构造查询?
- ORM 如何管理查询,同时保持对它的期望的任意性?
显然这是一个学术问题,但欢迎所有性质的答案!
(我选择的语言是OO PHP5.3!)
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
php - symfony 中的教义迁移不会更新模型和表单
我一直在 symfony 中测试 Doctrine 迁移,我终于让它们工作了,但我注意到这些迁移只更新数据库。表格和模型没有像我预期的那样更新......
这是正常的吗?如果正常,有没有办法用对数据库所做的更改来更新模型?