1
0
mirror of synced 2025-01-29 19:41:45 +03:00

[DDC-2655] Don't let getOneOrNullResult throw NoResultException

This commit is contained in:
David Stensland 2013-09-05 17:10:15 -04:00
parent ded3d20630
commit 089006927e
2 changed files with 29 additions and 1 deletions

View File

@ -609,7 +609,12 @@ abstract class AbstractQuery
*/
public function getOneOrNullResult($hydrationMode = null)
{
$result = $this->execute(null, $hydrationMode);
try {
$result = $this->execute(null, $hydrationMode);
} catch (NoResultException $e) {
return null;
}
if ($this->_hydrationMode !== self::HYDRATE_SINGLE_SCALAR && ! $result) {
return null;

View File

@ -0,0 +1,23 @@
<?php
namespace Doctrine\Tests\ORM\Functional\Ticket;
use Doctrine\ORM\Query;
/**
* @group DDC-2655
*/
class DDC2655Test extends \Doctrine\Tests\OrmFunctionalTestCase
{
public function setUp()
{
$this->useModelSet('cms');
parent::setUp();
}
public function testSingleScalarOneOrNullResult()
{
$query = $this->_em->createQuery("SELECT u.name FROM Doctrine\Tests\Models\CMS\CmsUser u WHERE u.username = 'happy_doctrine_user'");
$this->assertNull($query->getOneOrNullResult(Query::HYDRATE_SINGLE_SCALAR));
}
}