kinglozzer/multiselectfield

用于管理多对多关系的可排序多选字段

安装次数: 31,730

依赖项: 2

建议者: 0

安全: 0

星标: 13

关注者: 3

分支: 6

开放性问题: 3

类型:silverstripe-vendormodule

2.1.0 2023-07-17 08:17 UTC

README

Build Status

一个用于管理多对多关系的拖放排序选择字段。

field

安装

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',
    ];
}