如何在正确的情况下返回字段名称

时间:2015-05-20 13:40:46

标签: php postgresql symfony doctrine-orm

我需要在我的一个系统的DQL查询中包含一个带有LIMIT子句的子查询。由于Doctrine不支持它,我将其更改为本机查询。然而,本机查询返回小写字段而不是正确的大小写。 情况是因为这是工作代码,我根据这个名称有一些观点,而且更改所有名称要困难得多。

但是我在http://bit.ly/1Ht1ojH找到了这个方面可以在Doctrine中配置。所以我尝试了这段代码:

$conn = $this->getConnection();
$conn->setAttribute(Doctrine_Core::ATTR_FIELD_CASE, CASE_NATURAL);
$res = $conn->query("select MyCasedField from whatever")->fetchAll();

然而我收到了错误"试图调用方法" setAttribute"在课堂上#34; Doctrine \ ORM \ EntityManager"。

我也和经理一起尝试过同样的结果。

现在我现在可以制作一些代码来翻译字段,但我发现配置解决方案要干净得多。

有人知道symfony为什么不让我配置连接?

如果在DQL的子查询中有任何使用LIMIT的方法,我会发现它更好。

1 个答案:

答案 0 :(得分:0)

DQL中没有LIMIT个关键字。要使用此功能,您可以在查询对象上调用方法setMaxResults($limit)。它也可以应用于Query Builder。

$query = $this->getEntityManager()
        ->createQuery('SELECT p FROM Product p')
        ->setMaxResults($limit);