norgeit / nova-nested-tree-attach-many
Nova vue-tree-select 字段,用于管理嵌套分类关系。
1.6.0
2021-03-03 08:25 UTC
Requires
- php: >=7.1.0
- kalnoy/nestedset: ^5.0
README
用于简单管理嵌套关系树的“属于多个字段”。简化了关系的附加。
路线图
- 验证
- 在详情中显示选定的类别
- 传递自己的树的能力
- 当树有大量记录时(例如10k+),可以延迟加载数据的能力(
Delayed Loading
)。
安装
composer require phoenix-lib/nova-nested-tree-attach-many
使用方法
该字段使用由 kalnoy/nestedset 包提供的树。
该字段底层使用 riophae/vue-treeselect。
use PhoenixLib\NestedTreeAttachMany\NestedTreeAttachManyField;
public function fields(Request $request) { return [ NestedTreeAttachManyField::make('Offer Categories',"categories","App\Nova\Category"), ]; }
您的模型应该具有来自 kalnoy/nestedset 包的 NodeTrait 特性,请参阅路线图。
class Category extends Model { use NodeTrait; }
选项
以下是一些自定义选项
->searchable(bool $searchable)
->withIdKey(string $idKey = 'id')
// - 嵌套模型中的 id 列名->withLabelKey(string $labelKey = 'name')
// - 嵌套模型中的 label 列名->withActiveKey(string $activeKey)
// - 嵌套模型中的 active_status 列名,用于禁用选项->withChildrenKey(string $childrenKey)
// - 嵌套模型中的 children 键->withPlaceholder(string $placeholder)
// - 树选择中的占位符->withMaxHeight(int $maxHeight)
->withSortValueBy(string $sortBy)
// - @see https://vue-treeselect.js.org/#flat-mode-and-sort-values->withAlwaysOpen(bool $alwaysOpen)
// - 默认情况下选择是打开的,但您可以更改其行为->withFlatten(bool $flatten)
// - 默认情况下启用扁平化,但您可以更改其行为->useSingleSelect()
// - 选择单个值的能力
授权
该字段也尊重策略:即角色/权限
- 角色策略:attachAnyPermission($user, $role)
- 角色策略:attachPermission($user, $role, $permission)
- 权限策略:viewAny($user)
验证
您可以设置最小值、最大值、大小、必填或自定义规则对象
->rules('min:5', 'max:10', 'size:10', 'required', new CustomRule)`
贡献
请随时提出更改建议、请求新功能或自己修复错误。