Merge pull request #983 from holtkamp/patch-new-dql-in-expression-builder
Added MEMBER OF and INSTANCE OF to ExpressionBuilder
This commit is contained in:
commit
fdb9f90848
@ -644,4 +644,30 @@ class Expr
|
||||
{
|
||||
return new Expr\Func('TRIM', $x);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an instance of MEMBER OF function, with the given arguments.
|
||||
*
|
||||
* @param string $x Value to be checked
|
||||
* @param string $y Value to be checked against
|
||||
*
|
||||
* @return Expr\Comparison
|
||||
*/
|
||||
public function isMemberOf($x, $y)
|
||||
{
|
||||
return new Expr\Comparison($x, 'MEMBER OF', $y);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an instance of INSTANCE OF function, with the given arguments.
|
||||
*
|
||||
* @param string $x Value to be checked
|
||||
* @param string $y Value to be checked against
|
||||
*
|
||||
* @return Expr\Comparison
|
||||
*/
|
||||
public function isInstanceOf($x, $y)
|
||||
{
|
||||
return new Expr\Comparison($x, 'INSTANCE OF', $y);
|
||||
}
|
||||
}
|
||||
|
@ -38,6 +38,11 @@ class ExprTest extends \Doctrine\Tests\OrmTestCase
|
||||
{
|
||||
private $_em;
|
||||
|
||||
/**
|
||||
* @var Expr
|
||||
*/
|
||||
private $_expr;
|
||||
|
||||
protected function setUp()
|
||||
{
|
||||
$this->_em = $this->_getTestEntityManager();
|
||||
@ -271,6 +276,14 @@ class ExprTest extends \Doctrine\Tests\OrmTestCase
|
||||
$this->assertEquals('u.id IS NOT NULL', (string) $this->_expr->isNotNull('u.id'));
|
||||
}
|
||||
|
||||
public function testIsInstanceOfExpr() {
|
||||
$this->assertEquals('u INSTANCE OF Doctrine\Tests\Models\Company\CompanyEmployee', (string) $this->_expr->isInstanceOf('u', 'Doctrine\Tests\Models\Company\CompanyEmployee'));
|
||||
}
|
||||
|
||||
public function testIsMemberOfExpr() {
|
||||
$this->assertEquals(':groupId MEMBER OF u.groups', (string) $this->_expr->isMemberOf(':groupId', 'u.groups'));
|
||||
}
|
||||
|
||||
public function testInExpr()
|
||||
{
|
||||
$this->assertEquals('u.id IN(1, 2, 3)', (string) $this->_expr->in('u.id', array(1, 2, 3)));
|
||||
|
Loading…
Reference in New Issue
Block a user