/** * Override default filter values * * ex: change hub_id to Hub * * @param $vals - incoming values * @param $column - incoming column for which values pertain * @return $return - outgoing values */ public static function filtersOverrides($vals, $column) { $return = []; if ($column == 'task_id') { $ids = array_map(function ($task) { return $task->val; }, $vals); $tasks = Task::whereIn('id', $ids)->rows(); } foreach ($vals as $val) { // Just so I don't have to keep writing $val->val $value = $val->val; $x = array(); $x['value'] = $value; $x['display'] = $value; // Now override at will... if ($column == 'assignee_id' || $column == 'liaison_id' || $column == 'user_id') { $x['value'] = $value; $x['display'] = User::getInstance($value)->get('name'); if ($value == 0) { $x['display'] = 'No User'; } } elseif ($column == 'hub_id') { $x['value'] = $value; $x['display'] = Hub::oneOrFail($value)->name; } elseif ($column == 'task_id') { $x['value'] = $value; $x['display'] = $tasks->seek($value)->name; } elseif ($column == 'active') { $x['value'] = $value; $x['display'] = $value ? 'Yes' : 'No'; } $return[] = $x; } // Get an array of kays for sorting purposes // We do this here, as opposed to in the query, because the data could have been modified at this point by the overrides above foreach ($return as $key => $row) { $display[$key] = $row['display']; } // Do the sort array_multisort($display, SORT_ASC, $return); return $return; }