🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## addOrder('字段名') 如果有些字段需要排序功能,可以使用addOrder方法,将需要排序的字段名填写进去,多个字段用逗号隔开。 ~~~ // 排序 $order = $this->getOrder('sort asc, id desc'); // 数据列表 $data_list = ArticleModel::getList($map, $order); $fields =[ ['id', 'ID'], ['title', '标题'], ['name', '栏目名称'], ['click_count', '点击量', 'text.edit'], ['add_time', '发布时间'], ['sort', '排序', 'text.edit'], ['status', '状态', 'status'], ['right_button', '操作', 'btn'] ]; return Format::ins()//实例化 ->addColumns($fields)//设置字段 ->setSearch(['title'=>'文章标题']) ->setOrder('click_count,title') ->setTopButtons($this->top_button) ->setRightButtons($this->right_button) ->setData($data_list)//设置数据 ->fetch();//显示 ~~~ 添加好排序字段后,还需要在查询数据之前获取排序的数据,使用`$this->getOrder()`即可。 ![](https://img.kancloud.cn/6a/2e/6a2ee219ea313c3eeaf15d17cb1f0368_1226x231.png) > 注意:默认情况下,添加排序的字段是当前数据表真实存在的字段名,如果使用视图查询的数据,需要指定数据表。 `getOrder()`方法除了可以获取排序数据外,还可以添加额外的排序字段,比如: ~~~ // 获取排序,并添加额外排序字段 $order = $this->getOrder('id desc,sort'); ~~~ > 默认情况下,新增的额外排序字段会放在其他排序字段的后面,如果希望额外排序字段的优先级更高,可以把额外的排序字段前置。 ~~~ // 获取排序,并将额外排序字段前置 $order = $this->getOrder('id desc,sort', true); ~~~ ### 使用数组形式 ~~~ return Format::ins()//实例化 ->setOrder(['id','username']) // 添加排序 ->fetch(); ~~~ ### 指定其他表的字段 如果数据是从视图查询得到的,即包含了多张表的情况,那么需指定数据表名,格式为:表名.字段名,没有指定表名的字段默认在当前表查询。 ~~~ return Format::ins()//实例化 ->setOrder('user.username,nickname') // 添加排序 ->fetch(); ~~~ 也可以用数组的方式写,格式为`'字段名' => '表名'` ~~~ return Format::ins()//实例化 ->addOrder(['title' => 'user', 'username']) // 添加排序 ->fetch(); ~~~ 如果设置的字段别名,也可以指定其他表,并且指定其他字段名,格式为:`字段别名 => '表名.字段名'` ~~~ return Format::ins()//实例化 ->addOrder([article_title' => 'article.title']) // 添加排序 ->fetch(); ~~~ 其中`article_title`是字段别名。