コード例 #1
0
ファイル: Datatables.php プロジェクト: testoodoo/OoodooSiteUp
 /**
  * Datatable ordering
  *
  * @return null
  */
 private function doOrdering()
 {
     if (array_key_exists('order', $this->input) && count($this->input['order']) > 0) {
         for ($i = 0, $c = count($this->input['order']); $i < $c; $i++) {
             $order_col = (int) $this->input['order'][$i]['column'];
             $order_dir = $this->input['order'][$i]['dir'];
             if ($this->new_version) {
                 $column = $this->input['columns'][$order_col];
                 if ($column['orderable'] == "true") {
                     if (!empty($column['name'])) {
                         $this->query->orderBy($column['name'], $order_dir);
                     } elseif (isset($this->columns[$order_col])) {
                         $column_name = $this->getColumnName($this->columns[$order_col]);
                         $this->query->orderBy($column_name, $order_dir);
                     }
                 }
             } else {
                 if (isset($this->columns[$order_col])) {
                     if ($this->input['columns'][$order_col]['orderable'] == "true") {
                         $column_name = $this->getColumnName($this->columns[$order_col]);
                         $this->query->orderBy($column_name, $order_dir);
                     }
                 }
             }
         }
     }
 }
コード例 #2
0
ファイル: Sortable.php プロジェクト: classid/Database
 /**
  * Sort
  *
  * @param \Illuminate\Database\Eloquent\Builder $builder
  * @param string|null                           $sort    Optional sort string
  *
  * @return \Illuminate\Database\Query\Builder
  */
 public function scopeSort(Builder $builder, $sort = null)
 {
     if ((is_null($sort) || empty($sort)) && Input::has($this->getSortParameterName())) {
         $sort = Input::get($this->getSortParameterName());
     }
     if (!is_null($sort)) {
         $sort = explode(',', $sort);
         foreach ($sort as $field) {
             $field = trim($field);
             $order = 'asc';
             switch ($field[0]) {
                 case '-':
                     $field = substr($field, 1);
                     $order = 'desc';
                     break;
                 case '+':
                     $field = substr($field, 1);
                     break;
             }
             $field = trim($field);
             if (in_array($field, $this->getSortable())) {
                 $builder->orderBy($field, $order);
             }
         }
     }
 }
コード例 #3
0
ファイル: DbRepository.php プロジェクト: creolab/krustr
 /**
  * Set query options and params
  * @param  array  $options
  * @return Builder
  */
 public function options($options = array())
 {
     // Get order options
     $orderBy = array_get($options, 'order_by', 'created_at');
     $order = array_get($options, 'order', 'desc');
     // Run order
     if ($orderBy == 'rand') {
         $this->query->orderBy(DB::raw('RAND()'), $order);
     } else {
         $this->query->orderBy($orderBy, $order);
     }
     // Also the limit
     if ($limit = array_get($options, 'limit')) {
         $this->defaultLimit = (int) $limit;
     }
     if (is_array($options)) {
         foreach ($options as $key => $value) {
             if (!in_array($key, array('limit', 'order_by'))) {
                 if (is_array($value)) {
                     $this->query->where($key, $value[0], $value[1]);
                 } else {
                     $this->query->where($key, $value);
                 }
             }
         }
     }
     return $this->query;
 }
コード例 #4
0
ファイル: User.php プロジェクト: nukacode/users
 /**
  * Order by name ascending scope
  *
  * @param Builder $query The current query to append to
  *
  * @return Builder
  */
 public function scopeOrderByNameAsc($query)
 {
     return $query->orderBy('username', 'asc');
 }
コード例 #5
0
 /**
  * Order by created at
  *
  * @param Builder $query
  * @return Builder
  */
 public function scopeNewest($query)
 {
     return $query->orderBy('created_at', 'DESC');
 }