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