当我使用 WHERE 子句时,我的基本实体值为 NULL
When I use the WHERE clause my basic entity values are NULL
我想使用 doctrine querybuilder 重新生成原生 SQL 查询。
在这种情况下,我收到以下错误:
查询执行并 returns 结果(有和没有连接)。
但是当我添加一个简单的 WHERE
时,基本实体值是 NULL
.
已测试
- QueryBuilder(复杂:默认情况下我需要六个连接)
- QueryBuilder(简单:无连接)
- HQL
- 不同的 getResult()
和 execute()
调用
版本:
PHP 7.0(无法更新...)
./composer.phar info | grep doctrine
doctrine/annotations v1.4.0 Docblock Annotations Parser
doctrine/cache v1.6.2 Caching library offering an object-oriented API for many cache backends
doctrine/collections v1.4.0 Collections Abstraction library
doctrine/common v2.7.3 Common Library for Doctrine projects
doctrine/dbal v2.5.13 Database Abstraction Layer
doctrine/doctrine-bundle 1.10.3 Symfony DoctrineBundle
doctrine/doctrine-cache-bundle 1.3.5 Symfony Bundle for Doctrine Cache
doctrine/inflector v1.2.0 Common String Manipulations with regard to casing and singular/plural rules.
doctrine/instantiator 1.0.5 A small, lightweight utility to instantiate objects in PHP without invoking their cons...
doctrine/lexer 1.0.2 PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Pars...
doctrine/orm v2.5.14 Object-Relational-Mapper for PHP
一些代码
基本值已填(如id
和title
)。
$qb = $this->createQueryBuilder('artikel')
;
return $qb->getQuery()->execute();
除id
外基本值为null
。
$qb = $this->createQueryBuilder('artikel')
->andWhere('artikel.id = :ids')
->setParameter('ids', '1010729320')
;
return $qb->getQuery()->execute();
为什么我使用WHERE
子句时基本值是null
?
这很容易。 ;)
问题是
id
的数据类型是 integer
且给定参数的类型为 string
.
所以它是不同的,php 没有 auto-cast 东西。
解决方案
去掉id前后的'
正确的代码
注意:找出缺失的部分 '
$qb = $this->createQueryBuilder('artikel')
->andWhere('artikel.id = :ids')
->setParameter('ids', 1010729320)
;
return $qb->getQuery()->execute();
对我来说,问题发生在以前,但这是另一个故事(我在上面的评论中写了一些美分)。
谢谢大家
我想使用 doctrine querybuilder 重新生成原生 SQL 查询。
在这种情况下,我收到以下错误:
查询执行并 returns 结果(有和没有连接)。
但是当我添加一个简单的 WHERE
时,基本实体值是 NULL
.
已测试
- QueryBuilder(复杂:默认情况下我需要六个连接)
- QueryBuilder(简单:无连接)
- HQL
- 不同的 getResult()
和 execute()
调用
版本:
PHP 7.0(无法更新...)
./composer.phar info | grep doctrine
doctrine/annotations v1.4.0 Docblock Annotations Parser
doctrine/cache v1.6.2 Caching library offering an object-oriented API for many cache backends
doctrine/collections v1.4.0 Collections Abstraction library
doctrine/common v2.7.3 Common Library for Doctrine projects
doctrine/dbal v2.5.13 Database Abstraction Layer
doctrine/doctrine-bundle 1.10.3 Symfony DoctrineBundle
doctrine/doctrine-cache-bundle 1.3.5 Symfony Bundle for Doctrine Cache
doctrine/inflector v1.2.0 Common String Manipulations with regard to casing and singular/plural rules.
doctrine/instantiator 1.0.5 A small, lightweight utility to instantiate objects in PHP without invoking their cons...
doctrine/lexer 1.0.2 PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Pars...
doctrine/orm v2.5.14 Object-Relational-Mapper for PHP
一些代码
基本值已填(如id
和title
)。
$qb = $this->createQueryBuilder('artikel')
;
return $qb->getQuery()->execute();
除id
外基本值为null
。
$qb = $this->createQueryBuilder('artikel')
->andWhere('artikel.id = :ids')
->setParameter('ids', '1010729320')
;
return $qb->getQuery()->execute();
为什么我使用WHERE
子句时基本值是null
?
这很容易。 ;)
问题是
id
的数据类型是 integer
且给定参数的类型为 string
.
所以它是不同的,php 没有 auto-cast 东西。
解决方案
去掉id前后的'
正确的代码
注意:找出缺失的部分 '
$qb = $this->createQueryBuilder('artikel')
->andWhere('artikel.id = :ids')
->setParameter('ids', 1010729320)
;
return $qb->getQuery()->execute();
对我来说,问题发生在以前,但这是另一个故事(我在上面的评论中写了一些美分)。
谢谢大家