Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Update DboSource::group():

* Update documentation.
* Add Model type hint.
* Bail early when fields are empty.
  • Loading branch information...
commit 63a192ea39416b7b86c78401cf1c5d5c27c4a24b 1 parent 5c595b9
@bar bar authored
Showing with 21 additions and 15 deletions.
  1. +21 −15 lib/Cake/Model/Datasource/DboSource.php
View
36 lib/Cake/Model/Datasource/DboSource.php
@@ -2870,26 +2870,32 @@ public function order($keys, $direction = 'ASC', $model = null) {
}
/**
- * Create a GROUP BY SQL clause
+ * Create a GROUP BY SQL clause.
*
- * @param string $group Group By Condition
- * @param Model $model
- * @return string string condition or null
+ * @param string|array $fields Group By fields
+ * @param Model $Model
+ * @return string Group By clause or null.
*/
- public function group($group, $model = null) {
- if ($group) {
- if (!is_array($group)) {
- $group = array($group);
- }
- foreach ($group as $index => $key) {
- if (is_object($model) && $model->isVirtualField($key)) {
- $group[$index] = '(' . $model->getVirtualField($key) . ')';
+ public function group($fields, Model $Model = null) {
+ if (empty($fields)) {
+ return null;
+ }
+
+ if (!is_array($fields)) {
+ $fields = array($fields);
+ }
+
+ if (!empty($Model)) {
+ foreach ($fields as $index => $key) {
+ if ($Model->isVirtualField($key)) {
+ $fields[$index] = '(' . $Model->getVirtualField($key) . ')';
}
}
- $group = implode(', ', $group);
- return ' GROUP BY ' . $this->_quoteFields($group);
}
- return null;
+
+ $fields = implode(', ', $fields);
+
+ return ' GROUP BY ' . $this->_quoteFields($fields);
}
/**
Please sign in to comment.
Something went wrong with that request. Please try again.