Skip to content
This repository has been archived by the owner on Jan 3, 2024. It is now read-only.

Commit

Permalink
Allowed passing of fields so that virtual fields and other field conf…
Browse files Browse the repository at this point in the history
…igurations are possible.
  • Loading branch information
David Yell committed Sep 1, 2014
1 parent de7741f commit dc9ce88
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions Model/Behavior/ListableBehavior.php
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,13 @@ public function setup(Model $model, $config = array()) {
* @return array
*/
public function _findListing(Model $model, $findMethod, $state, $query, $results = array()) {
if (empty($query['fields'])) {
$fields = array($model->primaryKey, $model->displayField);
} else {
$fields = $query['fields'];
}

if ($state == 'before') {
$query['fields'] = array($model->primaryKey, $model->displayField);
$query['contain'] = array(
$this->settings[$model->alias]['relatedModelName'] => array(
'fields' => array(
Expand All @@ -102,17 +107,17 @@ public function _findListing(Model $model, $findMethod, $state, $query, $results
$this->findMethod = $findMethod;
return $query;
}

// Format the results
foreach ($results as $row) {
if (isset($row[$model->alias])) {
$name = $this->settings[$model->alias]['relatedModelName'];
$display = $this->settings[$model->alias]['relatedModelDisplayField'];

$optgroup = $row[$name][$display];
$id = $row[$model->alias]['id'];
$id = $row[$model->alias][$fields[0]];

$list[$optgroup][$id] = $row[$model->alias][$model->displayField];
$list[$optgroup][$id] = $row[$model->alias][$fields[1]];
}
}

Expand Down

0 comments on commit dc9ce88

Please sign in to comment.