# 關系行為類型
### [](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 安裝
- 偽靜態配置
- 依賴注入 & 控制器
- 中間件
- 路由文件
- 視圖