1
0
mirror of synced 2025-01-18 22:41:43 +03:00

Third parameter to Expr::substring is now optional

This commit is contained in:
David Abdemoulaie 2010-05-25 15:10:59 -05:00
parent 4934c49537
commit ece0e3ad88
2 changed files with 15 additions and 2 deletions

View File

@ -470,9 +470,13 @@ class Expr
* @param integer $len Length of crop. May accept negative values.
* @return Expr\Func
*/
public function substring($x, $from, $len)
public function substring($x, $from, $len = null)
{
return new Expr\Func('SUBSTRING', array($x, $from, $len));
$args = array($x, $from);
if (null !== $len) {
$args[] = $len;
}
return new Expr\Func('SUBSTRING', $args);
}
/**

View File

@ -185,6 +185,15 @@ class ExprTest extends \Doctrine\Tests\OrmTestCase
$this->assertEquals('SUBSTRING(a.title, 0, 25)', (string) $this->_expr->substring('a.title', 0, 25));
}
/**
* @group regression
* @group DDC-612
*/
public function testSubstringExprAcceptsTwoArguments()
{
$this->assertEquals('SUBSTRING(a.title, 0)', (string) $this->_expr->substring('a.title', 5));
}
public function testLowerExpr()
{
$this->assertEquals('LOWER(u.first_name)', (string) $this->_expr->lower('u.first_name'));