ThinkPHP5.1,FastAdmin 多字段排序
if($orderby == 'id' && $orderway =='desc'){ $orderby = 'id desc, price desc'; }elseif($orderby == 'id' && $orderway =='asc'){ $orderby = 'id asc, price asc'; }
ThinkPHP5.1 Query.php Order 方法
/** * 指定排序 order('id','desc') 或者 order(['id'=>'desc','create_time'=>'desc']) * @access public * @param string|array $field 排序字段 * @param string $order 排序 * @return $this */ public function order($field, $order = null) { if (empty($field)) { return $this; } elseif ($field instanceof Expression) { $this->options['order'][] = $field; return $this; } if (is_string($field)) { if (!empty($this->options['via'])) { $field = $this->options['via'] . '.' . $field; } if (strpos($field, ',')) { $field = array_map('trim', explode(',', $field)); } else { $field = empty($order) ? $field : [$field => $order]; } } elseif (!empty($this->options['via'])) { foreach ($field as $key => $val) { if (is_numeric($key)) { $field[$key] = $this->options['via'] . '.' . $val; } else { $field[$this->options['via'] . '.' . $key] = $val; unset($field[$key]); } } } if (!isset($this->options['order'])) { $this->options['order'] = []; } if (is_array($field)) { $this->options['order'] = array_merge($this->options['order'], $field); } else { $this->options['order'][] = $field; } return $this; }
发表评论 取消回复