Condition pipe defaults to AND

XML 쿼리 작성시 pipe="and"를 일일이 추가하지 않아도 기본값이 AND가 되도록 함
This commit is contained in:
Kijin Sung 2018-06-30 15:55:06 +09:00
parent 83362034cd
commit efa1b603c4
4 changed files with 16 additions and 9 deletions

View file

@ -41,12 +41,12 @@ class Condition
* @param string $pipe
* @return void
*/
function __construct($column_name, $argument, $operation, $pipe)
function __construct($column_name, $argument, $operation, $pipe = 'and')
{
$this->column_name = $column_name;
$this->argument = $argument;
$this->operation = $operation;
$this->pipe = strtoupper($pipe);
$this->pipe = $pipe;
}
function getArgument()
@ -85,7 +85,7 @@ class Condition
*/
function toStringWithoutValue()
{
return $this->pipe . ' ' . $this->getConditionPart($this->_value);
return strtoupper($this->pipe) . ' ' . $this->getConditionPart($this->_value);
}
/**
@ -94,7 +94,7 @@ class Condition
*/
function toStringWithValue()
{
return $this->pipe . ' ' . $this->getConditionPart($this->_value);
return strtoupper($this->pipe) . ' ' . $this->getConditionPart($this->_value);
}
function setPipe($pipe)

View file

@ -29,7 +29,7 @@ class ConditionGroup
* @param string $pipe
* @return void
*/
function __construct($conditions, $pipe = "")
function __construct($conditions, $pipe = 'and')
{
$this->conditions = array();
foreach($conditions as $condition)
@ -89,7 +89,7 @@ class ConditionGroup
if($this->pipe !== "" && trim($group) !== '')
{
$group = $this->pipe . ' (' . $group . ')';
$group = strtoupper($this->pipe) . ' (' . $group . ')';
}
$this->_group = $group;

View file

@ -43,10 +43,17 @@ class JoinTable extends Table
{
$part = strtoupper($this->join_type) . ' ' . $this->name;
$part .= $this->alias ? (' AS ' . $this->alias) : '';
$part .= ' ON ';
$part .= ' ON ';
$condition_count = 0;
foreach($this->conditions as $conditionGroup)
{
$part .= $conditionGroup->toString($with_value);
if($condition_count === 0)
{
$conditionGroup->setPipe("");
}
$part .= $conditionGroup->toString($with_value);
$condition_count++;
}
return $part;
}