# 关系行为类型
### [](https://octobercms.com/docs/backend/relations#relationship-types)关系类型
关系管理器的显示方式取决于目标模型中的关系定义。关系类型还将确定配置要求,这些要求以**粗体显示**。可以使用以下关系类型:
* [有很多](https://octobercms.com/docs/backend/relations#has-many)
* [属于许多](https://octobercms.com/docs/backend/relations#belongs-to-many)
* [属于许多(带有数据透视数据)](https://octobercms.com/docs/backend/relations#belongs-to-many-pivot)
* [属于](https://octobercms.com/docs/backend/relations#belongs-to)
* [有一个](https://octobercms.com/docs/backend/relations#has-one)
### [](https://octobercms.com/docs/backend/relations#has-many)有很多
1. 相关记录显示为列表(**view.list**)。
2. 单击一条记录将显示一个更新表单(**manage.form**)。
3. 单击*添加*将显示一个选择列表(**manage.list**)。
4. 单击*创建*将显示一个创建表单(**manage.form**)。
5. 单击*删除*将销毁记录。
6. 单击*删除*将孤立该关系。
例如,如果*博客帖子中*有很多*评论*,则将目标模型设置为博客帖子,并使用**列表**定义中的列显示评论**列表**。单击评论将打开一个弹出表单,其中包含在**表单中**定义的字段以更新评论。注释可以用相同的方式创建。下面是关系行为配置文件的示例:
~~~
# ===================================
# Relation Behavior Config
# ===================================
comments:
label: Comment
manage:
form: $/acme/blog/models/comment/fields.yaml
list: $/acme/blog/models/comment/columns.yaml
view:
list: $/acme/blog/models/comment/columns.yaml
toolbarButtons: create|delete
~~~
### [](https://octobercms.com/docs/backend/relations#belongs-to-many)属于许多
1. 相关记录显示为列表(**view.list**)。
2. 单击*添加*将显示一个选择列表(**manage.list**)。
3. 单击*创建*将显示一个创建表单(**manage.form**)。
4. 单击*删除*将销毁数据透视表记录。
5. 单击*删除*将孤立该关系。
例如,如果*用户*属于多个*角色*,则将目标模型设置为用户,并使用**列表**定义中的列显示角色**列表**。可以添加现有角色,也可以从用户中删除现有角色。下面是关系行为配置文件的示例:
~~~
# ===================================
# Relation Behavior Config
# ===================================
roles:
label: Role
view:
list: $/acme/user/models/role/columns.yaml
toolbarButtons: add|remove
manage:
list: $/acme/user/models/role/columns.yaml
form: $/acme/user/models/role/fields.yaml
~~~
### [](https://octobercms.com/docs/backend/relations#belongs-to-many-pivot)属于许多(带有数据透视数据)
> **注意:**[延迟绑定](https://octobercms.com/docs/database/relations#deferred-binding)目前不支持数据透视表数据,因此父模型应该存在。如果您的关系行为配置具有`deferredBinding: true`,则枢轴数据将**无法**在列表配置(例如`pivot[attribute]`)中使用。
1. 相关记录显示为列表(**view.list**)。
2. 单击一条记录将显示一个更新表单(**ivot.form**)。
3. 单击“*添加”*将显示一个选择列表(**manage.list**),然后显示一个数据输入表单(**ivot.form**)。
4. 单击*删除*将销毁数据透视表记录。
继续“*属于许多*关系”中的示例,如果一个角色也带有一个到期日期,则单击一个角色将打开一个弹出式窗体,该窗体具有在**透视图中**定义的字段以更新到期日期。下面是关系行为配置文件的示例:
~~~
# ===================================
# Relation Behavior Config
# ===================================
roles:
label: Role
view:
list: $/acme/user/models/role/columns.yaml
manage:
list: $/acme/user/models/role/columns.yaml
pivot:
form: $/acme/user/models/role/fields.yaml
~~~
通过`pivot`关系定义表单字段和列表列时,数据透视表可用,请参见以下示例:
~~~
# ===================================
# Relation Behavior Config
# ===================================
teams:
label: Team
view:
list:
columns:
name:
label: Name
pivot[team_color]:
label: Team color
manage:
list:
columns:
name:
label: Name
pivot:
form:
fields:
pivot[team_color]:
label: Team color
~~~
### [](https://octobercms.com/docs/backend/relations#belongs-to)属于
1. 相关记录显示为预览表单(**view.form**)。
2. 单击*创建*将显示一个创建表单(**manage.form**)。
3. 单击*更新*将显示一个更新表单(**manage.form**)。
4. 单击*链接*将显示一个选择列表(**manage.list**)。
5. 单击*取消链接*将孤立该关系。
6. 单击*删除*将销毁记录。
例如,如果*电话*属于某*个人,*则关系管理器将显示一个表单,其中包含在**form中**定义的字段。单击“链接”按钮将显示要与手机关联的人员列表。单击“取消链接”按钮将使电话与个人解除关联。
~~~
# ===================================
# Relation Behavior Config
# ===================================
person:
label: Person
view:
form: $/acme/user/models/person/fields.yaml
toolbarButtons: link|unlink
manage:
form: $/acme/user/models/person/fields.yaml
list: $/acme/user/models/person/columns.yaml
~~~
### [](https://octobercms.com/docs/backend/relations#has-one)有一个
1. 相关记录显示为预览表单(**view.form**)。
2. 单击*创建*将显示一个创建表单(**manage.form**)。
3. 单击*更新*将显示一个更新表单(**manage.form**)。
4. 单击*链接*将显示一个选择列表(**manage.list**)。
5. 单击*取消链接*将孤立该关系。
6. 单击*删除*将销毁记录。
例如,如果一个*人*具有一个*电话*的关系经理将显示在定义的字段形式**形式**的电话。单击“更新”按钮时,将显示一个弹出窗口,其中的字段现在可编辑。如果此人已经有电话,则字段将更新,否则将为他们创建一个新电话。
~~~
# ===================================
# Relation Behavior Config
# ===================================
phone:
label: Phone
view:
form: $/acme/user/models/phone/fields.yaml
toolbarButtons: update|delete
manage:
form: $/acme/user/models/phone/fields.yaml
list: $/acme/user/models/phone/columns.yaml
~~~
- 基本说明
- 基本操作
- 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 安装
- 伪静态配置
- 依赖注入 & 控制器
- 中间件
- 路由文件
- 视图