Example #1
0
 /**
  * Sort model by parameters given in the URL
  * i.e: ?sortby=name&sortdir=desc
  *
  * @param \Illuminate\Database\Eloquent\Builder
  *
  * @return \Illuminate\Database\Eloquent\Builder
  */
 public function scopeOrderByUrl($query)
 {
     $column = Input::get('sortby');
     switch ($column) {
         default:
             return parent::scopeOrderByUrl($query);
         case 'user_id':
             $table = 'users';
             $relatedColumn = 'username';
             break;
         case 'provider_id':
             $table = 'authproviders';
             $relatedColumn = 'title';
             break;
     }
     $direction = Input::get('sortdir') === 'desc' ? 'desc' : 'asc';
     return $query->select($this->getTable() . '.*')->leftJoin($table, $column, '=', "{$table}.id")->orderBy("{$table}.{$relatedColumn}", $direction);
     // Sort by related column
 }
Example #2
0
 /**
  * Sort model by parameters given in the URL
  * i.e: ?sortby=name&sortdir=desc
  *
  * @param \Illuminate\Database\Eloquent\Builder
  *
  * @return \Illuminate\Database\Eloquent\Builder
  */
 public function scopeOrderByUrl($query)
 {
     $column = Input::get('sortby');
     $direction = Input::get('sortdir') === 'desc' ? 'desc' : 'asc';
     if ($column === 'name') {
         return $query->orderBy('title', $direction);
     }
     return parent::scopeOrderByUrl($query);
 }