SqlCriteria - count - use $select parameter for preventions error with duplicate fields

This commit is contained in:
2014-07-30 20:01:57 +04:00
parent d3f367d990
commit 383396b96d
2 changed files with 6 additions and 5 deletions

View File

@ -79,14 +79,15 @@ class SqlCriteria
return $this->model->find('', '', $this->where, null, null, null, null, 'DELETE FROM :table', $this->sql_expression_params)->affectedRows();
}
public function count()
public function count($select = 'x')
{
$sql_expression_backup = $this->sql_expression;
$this->select($select);
$this->defineJoinExpressions();
$sql_expression_backup = $this->sql_expression;
if (!$this->sql_expression) {
$this->sql_expression = 'SELECT COUNT(*) as count FROM :table';
}
$count = $this->model->count(array(), '', $this->where, null, $this->group_by, $this->sql_expression, $this->sql_expression_params)->fetchField('count');
$count = $this->model->count($select, '', $this->where, null, $this->group_by, $this->sql_expression, $this->sql_expression_params)->fetchField('count');
$this->sql_expression = $sql_expression_backup;
return $count;
}