request->get(); $fields = ModelField::where(['modelid' => $modelid, 'isorder' => 1]) ->order('listorder', 'desc') ->field('id,title,name') ->select() ->toArray(); if (empty($fields)) { return []; } $sort = isset($param['sort']) && in_array($param['sort'], array_map(function ($vo) {return $vo['name'];}, $fields)) ? $param['sort'] : 'default'; $order = isset($param['order']) && in_array(strtolower($param['order']), ['desc', 'asc']) ? $param['order'] : ''; $isDefaultSort = $sort === 'default'; // 构造默认排序 $orderList = [ 'data' => $isDefaultSort ? $tag['order'] : "$sort $order", 'list' => [[ 'title' => '默认', 'field' => 'default', 'url' => '?' . http_build_query(array_merge($param, ['sort' => 'default'])), 'active' => $isDefaultSort, 'order' => $order, ]], ]; foreach ($fields as $field) { $currentField = $field['name']; $isActive = $currentField === $sort; $tempOrder = $isActive && $order === 'desc' ? 'asc' : 'desc'; $orderList['list'][] = [ 'title' => $field['title'], 'field' => $currentField, 'url' => '?' . http_build_query(array_merge($param, ['sort' => $currentField, 'order' => $tempOrder])), 'active' => $isActive, 'order' => $tempOrder, ]; } return $orderList; } //刷新栏目索引缓存 public function category_cache() { $data = Category::order("listorder DESC")->column('catdir,parentid', 'id'); cms_cache("Category", $data); return $data; } }