示例#1
0
 /**
  * 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;
 }