Doctrine - PostgreSQL - 表/字段名称中的大写和空格

Phi*_*ord 0 php sql postgresql pdo doctrine-orm

使用空格和大写字段/表名称的Doctrine 2.3和PostgreSQL存在问题

示例:(是的,我们正在努力从此迁移)

SELECT "Field Name"
FROM "Table Name"
Run Code Online (Sandbox Code Playgroud)

我们也有两种格式的混合

SELECT "Field Name", another_field_name
FROM "Table Name", another_table_name
Run Code Online (Sandbox Code Playgroud)

使用doctrine时,我收到了PDOException.在查看错误时,我发现在包含大写和空格的Fields/Tables(名称)周围没有双引号.

有修复吗?解决方法?

这是Doctrine正在产生的一个例子

SELECT t0.TheId AS theid1, t0.Name AS name2, t0.User AS user3
FROM The Table t0 
WHERE t0.TheId = 1234
Run Code Online (Sandbox Code Playgroud)

这就是我需要的方式

SELECT t0."TheId" AS theid1, t0."Name" AS name2, t0."User" AS user3
FROM "The Table" t0 
WHERE t0."TheId" = 1234
Run Code Online (Sandbox Code Playgroud)

Cha*_*nga 5

您可能需要使用反引号让Doctrine知道它应该被引用:引用保留字.例如:

<?php
/** @Column(name="`number`", type="integer") */
private $number;
Run Code Online (Sandbox Code Playgroud)