owl / hasmany
此包已被废弃且不再维护。未建议替代包。
多对一/从属关系子表单。
dev-master / 1.0.x-dev
2015-04-09 16:09 UTC
Requires
- php: >=5.4.0
This package is auto-updated.
Last update: 2021-09-27 11:45:17 UTC
README
为 OctoberCMS 提供的 has-many/belongs-to 弹出小部件。
安装
要安装 Hasmany 小部件,请在您的插件 composer.json
文件中添加以下内容。
"require": { "owl/hasmany": "~1.0@dev" }
接下来,在您的 Plugin.php
文件中注册该小部件。
public function registerFormWidgets() { return [ 'Owl\FormWidgets\HasMany\Widget' => [ 'label' => 'Hasmany', 'code' => 'owl-hasmany' ], ]; }
用法
首先,您需要有一对通过 has-many / belongs-to 关系关联的模型。从那里开始,在父模型的 fields.yaml 文件中使用关系名称作为字段名称,并使用 owl-hasmany
作为类型。
relationship: type: owl-hasmany
接下来,您需要定义默认参数或自定义部分。默认参数将创建一个非常类似于 Sitemap 插件 UI 的列表。您可以在这些字段中使用基本 twig 标记,变量名称将引用模型属性。icon
选项应是一个有效的 Font-Autumn 图标类,或 false
。
relationship: type: owl-hasmany default: icon: icon-file-o label: "{{ name }}" comment: "{{ description }}"
要自定义小部件外观,您还可以定义自定义部分而不是默认部分。
relationship: type: owl-hasmany partial: @/plugins/author/plugin/models/relationship/_partial.htm
有一些额外的参数可用于自定义小部件外观。定义一个 sortColumn
启用拖放重新排序。此值应引用模型的 "排序" 列名称。定义一个 formHeader
将更改弹出窗口的默认标题。定义一个 addLabel
或 addIcon
将自定义添加按钮的外观。
当弹出窗口打开或关闭时,将触发 JavaScript 事件。监听这些事件在您希望根据表单值显示/隐藏字段时非常有用。
$(document).bind("owl.hasmany.opened", function(e, data) { // popup was opened }); $(document).bind("owl.hasmany.closed", function(e, data) { // popup was closed });
data
数组将包含 3 个键。 data.alias
指的是小部件别名,data.item
指的是弹出窗口对应的 li 元素,而 data.form
引用了弹出窗口表单元素。