# 列表排序操作
### 介绍
**重新排序行为**是控制器修饰符,它提供了对数据库记录进行排序和重新排序的功能。该行为提供了一个使用controller动作的页面,称为Reorder`reorder`。此页面显示带有拖动手柄的记录列表,允许对它们进行排序并在某些情况下进行重组。
该行为取决于必须实现以下[模型特征](https://octobercms.com/docs/database/traits)之一的[模型类](https://octobercms.com/docs/database/model):[](https://octobercms.com/docs/database/traits)
1. `October\Rain\Database\Traits\Sortable`
2. `October\Rain\Database\Traits\NestedTree`
为了使用重新排序行为,应将其添加到`$implement`控制器类的属性中。另外,`$reorderConfig`应该定义class属性,并且其值应引用用于配置行为选项的YAML文件。
~~~
namespace Acme\Shop\Controllers;
class Categories extends Controller
{
public $implement = [
'Backend.Behaviors.ReorderController',
];
public $reorderConfig = 'config_reorder.yaml';
// [...]
}
~~~
### [](https://octobercms.com/docs/backend/reorder#configuring-reorder)配置行为
`$reorderConfig`属性中引用的配置文件以YAML格式定义。该文件应放置在控制器的[views目录中](https://octobercms.com/docs/backend/controllers-ajax/#introduction)。以下是配置文件的示例:
~~~
# ===================================
# Reorder Behavior Config
# ===================================
# Reorder Title
title: Reorder Categories
# Attribute name
nameFrom: title
# Model Class name
modelClass: Acme\Shop\Models\Category
# Toolbar widget configuration
toolbar:
# Partial for toolbar buttons
buttons: reorder_toolbar
~~~
可以使用下面列出的配置选项。
| 选项 | 描述 |
| --- | --- |
| **title** | 用于页面标题。 |
| **nameFrom** | 指定应将哪个属性用作每个记录的标签。 |
| **modelClass** | 一个模型类名,记录数据就是从这个模型加载的。 |
| **toolbar** | 引用工具栏窗口小部件配置文件或具有配置的数组。 |
### [](https://octobercms.com/docs/backend/reorder#reorder-display)显示重新订购页面
您应该提供一个名为**reorder.htm**的[视图文件](https://octobercms.com/docs/backend/controllers-ajax/#introduction)。该视图代表“重新排序”页面,该页面允许用户对记录进行重新排序。由于重新排序包括工具栏,因此视图文件将仅包含单个方法调用。`reorderRender`
~~~
<?= $this->reorderRender() ?>
~~~
### [](https://octobercms.com/docs/backend/reorder#override-sortable-partials)覆盖可排序部分
如果您需要覆盖重新订购页面的默认视图,则必须复制
1. `modules/backend/behaviors/reordercontroller/partials/_container.htm`
2. `modules/backend/behaviors/reordercontroller/partials/_records.htm`
在
1. `plugins/yournamespace/yourplugin/yoursortablecontroller/_reorder_container.htm`
2. `plugins/yournamespace/yourplugin/yoursortablecontroller/_reorder_records.htm`
### [](https://octobercms.com/docs/backend/reorder#extend-model-query)扩展模型查询
可以通过覆盖控制器类内部的方法来扩展对列表[数据库模型](https://octobercms.com/docs/database/model)的查找查询`reorderExtendQuery`。通过将**withTrashed**范围应用于查询,此示例将确保软删除的记录包括在列表数据中:
~~~
public function reorderExtendQuery($query)
{
$query->withTrashed();
}
~~~
- 基本说明
- 基本操作
- October cms 安装
- 后台控制器路径
- 图标
- 获取安装网上的插件/主题
- 插件构造器使用
- 定时任务
- October后台控制器
- vscode编辑器
- ajax操作
- 使用
- ajax更新组件
- ajax属性API
- JavaScript API
- ajax综合使用
- 主题
- 多语言主题
- 安装市场主题
- 主题程序处理
- 主题
- 页面
- 部件
- 布局
- 内容
- 组件
- 媒体
- 主题表单操作
- 表单使用
- 表单后端程序处理
- 插件
- 自定义插件
- 插件说明
- 插件导航条
- 插件数据库设置
- 插件的设置管理
- 插件的配置文件config
- 组件
- app服务
- app容器
- 扩展行为
- 缓存
- Collection类
- Lazy Collections
- Collection方法
- 助手函数
- 数组助手函数
- 路径助手函数
- 玄乐助手函数
- 其他助手函数
- 错误与记录
- 事件处理
- HTML页面
- 文件与目录操作
- 散列和加密
- 邮件
- 邮件内容
- 邮件发送
- 分页
- 模板解析器
- 动态解析器语法
- 队列消息
- 请求与输入
- 响应
- 视图
- 路由器
- 配置
- 验证操作
- 处理错误消息
- 错误消息与视图
- 可用的验证规则
- 有条件的验证规则
- 验证数组
- 错误消息
- 自定义验证规则
- 模型操作
- 定义模型与其属性
- 检索模型
- 插入与更新
- 删除模型
- 查询范围
- 事件操作
- 关联操作
- 定义关系
- 关系类型
- 多肽关系
- 关系查询
- 渴望加载
- 插入模型
- 数据库操作
- 基本用法
- 数据表结构
- 查询连贯操作
- 结果检索
- select子句
- 插入更新
- where子句
- 排序,分组,限制和偏移
- 文件附件
- Collection操作
- 属性操作
- 系列化json
- 数据库属性
- 数据库行为
- 控制器
- 后台控制器定义
- 后台页面
- 后台组件
- 后台表单
- 表单组件
- 表单视图
- 表单行为
- 后台列表
- 列表行为
- 列表过滤器
- 可用列类型
- 关系行为
- 关系行为类型
- 扩展关系行为
- 列表排序操作
- 导入导出操作
- 用于与权限
- corlate模板修改
- 修改顶部导航
- laravel问题
- 控制器不存在
- 控制器
- 路由组
- laravel笔记
- laravel 安装
- 伪静态配置
- 依赖注入 & 控制器
- 中间件
- 路由文件
- 视图