kinglozzer / multiselectfield
用于管理多对多关系的可排序多选字段
2.1.0
2023-07-17 08:17 UTC
Requires
- silverstripe/framework: ^4.0 | ^5.0
- silverstripe/vendor-plugin: ^1.0 | ^2.0
Requires (Dev)
- phpunit/phpunit: ^5.7
README
一个用于管理多对多关系的拖放排序选择字段。
安装
Composer
$ composer require kinglozzer/multiselectfield:^2.0
下载
简单地克隆或下载此仓库,并将其放入SilverStripe安装文件夹中的'multiselectfield'文件夹,然后运行dev/build
。
示例
该字段目前仅支持多对多关系。构造函数接受一个可选参数,用于指定排序的字段,您需要在您的$many_many_extraFields
中定义它。
以下是一个如何使用MultiSelectField
在具有“排序”额外字段的多对多关系中的示例
use Kinglozzer\MultiSelectField\Forms\MultiSelectField; class Department extends DataObject { private static $db = [ 'Name' => 'Varchar', ]; private static $many_many = [ 'StaffMembers' => 'StaffMember', ]; private static $many_many_extraFields = [ 'StaffMembers' => [ 'Sort' => 'Int', ] ]; /** * @return FieldList */ public function getCMSFields() { $fields = FieldList::create(); $staffField = MultiSelectField::create('StaffMembers', 'Staff members', $this, 'Sort'); $fields->addFieldToTab('Root.Main', $staffField); return $fields; } }
class StaffMember extends DataObject { private static $db = [ 'Name' => 'Varchar', ]; private static $many_many = [ 'Departments' => 'Department', ]; }