跳转到内容

Select2

编辑此页

Admin 集成了 select2。Select2 是一个基于 jQuery 的 select 框替代品。它支持搜索、远程数据集和结果的无限滚动。

默认情况下,select2 在所有 select 表单元素上启用。

禁用 select2

如果您不想在 admin 中使用 select2,您可以在配置中禁用它。

1
2
3
4
5
# config/packages/sonata_admin.yaml

sonata_admin:
    options:
        use_select2: false # disable select2

注意

如果您禁用 select2,自动完成表单类型将停止工作。

在某些表单元素上禁用 select2

要在某些 select 表单元素上禁用 select2,请将数据属性 data-sonata-select2 = "false" 设置到此表单元素

1
2
3
4
5
6
7
8
9
10
11
12
use Sonata\AdminBundle\Form\Type\ModelType;

protected function configureFormFields(FormMapper $form): void
{
    $form
        ->add('category', ModelType::class, [
            'attr' => [
                'data-sonata-select2' => 'false'
            ]
        ])
    ;
}

注意

您必须使用字符串 "false"! "false"!

允许清除

Select2 参数 allowClear 由 admin 自动处理。但是,如果您想重载默认功能,您可以设置数据属性 data-sonata-select2-allow-clear="true" 以启用 allowClear,或设置 data-sonata-select2-allow-clear = "false" 以禁用 allowClear 参数

1
2
3
4
5
6
7
8
9
10
11
12
use Sonata\AdminBundle\Form\Type\ModelType;

protected function configureFormFields(FormMapper $form): void
{
    $form
        ->add('category', ModelType::class, [
            'attr' => [
                'data-sonata-select2-allow-clear' => 'false'
            ]
        ])
    ;
}

注意

您必须使用字符串 "false"! "false"!

允许标签

Select2 参数 allowTags 可以使用数据属性 data-sonata-select2-allow-tags="true" 进行设置以启用 allowTags

1
2
3
4
5
6
7
8
9
10
11
12
use Sonata\AdminBundle\Form\Type\ModelType;

protected function configureFormFields(FormMapper $form): void
{
    $form
        ->add('category', ModelType::class, [
            'attr' => [
                'data-sonata-select2-allow-tags' => 'true'
            ]
        ])
    ;
}

注意

您必须使用字符串 "true"! "true"!

要控制 select 可搜索之前所需的最小结果数,您可以设置数据属性 data-sonata-select2-minimumResultsForSearch。这控制 select2 的 minimumResultsForSearch 参数

1
2
3
4
5
6
7
8
9
10
11
12
use Sonata\AdminBundle\Form\Type\ModelType;

protected function configureFormFields(FormMapper $form): void
{
    $form
        ->add('category', ModelType::class, [
            'attr' => [
                'data-sonata-select2-minimumResultsForSearch' => '10',
            ]
        ])
    ;
}

注意

默认情况下,minimumResultsForSearch 将设置为 10

最大选择长度

要控制可以选择的最大结果数,您可以设置数据属性 data-sonata-select2-maximumSelectionLength。这控制 select2 的 maximumSelectionLength 参数

1
2
3
4
5
6
7
8
9
10
11
12
use Sonata\AdminBundle\Form\Type\ModelType;

protected function configureFormFields(FormMapper $form): void
{
    $form
        ->add('category', ModelType::class, [
            'attr' => [
                'data-sonata-select2-maximumSelectionLength' => '3',
            ]
        ])
    ;
}
本作品(包括代码示例)根据 Creative Commons BY-SA 3.0 许可协议获得许可。
目录
    版本