當我嘗試使用學說\ ORM \查詢#getOneOrNullResult法HYDRATE_SINGLE_SCALAR水化模式,一種學說\ ORM \ NoResultException被拋出時,沒有結果發現:HYDRATE_SINGLE_SCALAR導致例外getOneOrNullResult時沒有找到結果
$q=$em->createQueryBuilder()
->select('ticket.tickets_id')
->from('e:Ticket','ticket')
->where('ticket.ticketnumber=:ticketnumber')
->setParameter('ticketnumber','kr1r9x')
->getQuery()
;
// these both work:
var_dump($q->getOneOrNullResult(Query::HYDRATE_SCALAR));
var_dump($q->getOneOrNullResult(Query::HYDRATE_SINGLE_SCALAR));
$q=$em->createQueryBuilder()
->select('ticket.tickets_id')
->from('e:Ticket','ticket')
->where('ticket.ticketnumber=:ticketnumber')
->setParameter('ticketnumber','foobar')
->getQuery()
;
// this works
var_dump($q->getOneOrNullResult(Query::HYDRATE_SCALAR));
// this fails
var_dump($q->getOneOrNullResult(Query::HYDRATE_SINGLE_SCALAR));
我希望NULL到了最近一個電話被退回,但實際產量爲:
% php ~/test.php
array(1) {
'tickets_id' =>
string(6) "119827"
}
string(6) "119827"
NULL
Fatal error: Uncaught exception 'Doctrine\ORM\NoResultException' with message 'No result was found for query although at least one row was expected.' in ~/project/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/SingleScalarHydrator.php on line 43
Doctrine\ORM\NoResultException: No result was found for query although at least one row was expected. in ~/project/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/SingleScalarHydrator.php on line 43
Call Stack:
0.0002 640440 1. {main}() ~/test.php:0
0.1575 15011776 2. Doctrine\ORM\AbstractQuery->getOneOrNullResult() ~/test.php:28
0.1575 15011824 3. Doctrine\ORM\AbstractQuery->execute() ~/project/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php:612
0.1581 15016432 4. Doctrine\ORM\Internal\Hydration\AbstractHydrator->hydrateAll() ~/project/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php:804
0.1581 15016432 5. Doctrine\ORM\Internal\Hydration\SingleScalarHydrator->hydrateAllData() ~/project/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php:140
是沒可能得到這樣一個標或NULL?
(據我所知,解決方法是使用HYDRATE_SCALAR相反,我只是想知道爲什麼HYDRATE_SINGLE_SCALAR不工作)
學說ORM v2.4.5,DBAL &常見V2.4.2
同樣的問題在這裏。奇怪的。現在我正在使用getOneOrNullResult + HYDRATE_SCALAR,檢查是否爲空($ result) – gremo 2015-02-04 09:11:00