EasyAdmin选择字段
编辑该页面EasyAdmin选择字段
这个字段显示的内容属性的值只能是一个包含在给定设置的值。
在表单页面(编辑和新)这个领域呈现在许多不同的方式取决于它的配置(见细节在这个页面)。
基本信息
- PHP类:
EasyCorp
\包 \ EasyAdminBundle \领域 \ ChoiceField - 教义DBAL类型用于存储这个值:
字符串
或任何其他类型的可能值(如您使用。整数
) - ob娱乐下载Symfony表单类型用于呈现字段:ChoiceType
呈现为:
1 2 3
< !——这个领域也呈现一组复选框,一组radiobuttons或一个先进的小部件创建JavaScript。这一切都取决于字段配置,如下说明- - >
选项
allowMultipleChoices
默认情况下,表单页面(编辑
和新
),你只能选择一个可能的值的字段。使用这个选项,允许选择一个无限数量的项目:
1
收益率ChoiceField::新(“……”)- >allowMultipleChoices ();
自动完成
默认情况下,所有可能的项目立即加载和显示在项目选择器。如果有许多项目,考虑使用这个选项根据用户输入动态过滤项:
1
收益率ChoiceField::新(“……”)- >自动完成();
这是自动完成的字段看起来像当它扩展:
escapeHtml
默认情况下,可能值的列表中所有的HTML内容转义。使用这个选项如果你的价值观有HTML内容和想要呈现:
1
收益率ChoiceField::新(“……”)- >escapeHtml (假);
renderAsBadges
当使用这种类型的字段,是常见的上市代表所选值(s)徽章(如发票的支付/未付状态)。此选项提供了许多不同的方法将你的选择变成徽章在只读页面(指数
和细节
):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日
/ /所有值都呈现相同的徽章风格(引导的“二级”风格)收益率ChoiceField::新(“……”)- >renderAsBadges ();/ /您可以分配不同的徽章风格每使用一个数组值/ /不需要为所有的值分配方式;未赋值的值将/ /使用“二级”呈现的风格收益率ChoiceField::新(“……”)- >renderAsBadges ([/ /值= > badgeStyleName美元“支付”= >“成功”,“等待”= >“警告”,“退还”= >“危险”]);/ /除了一个数组,您还可以使用一个回调;这个回调/ /接收FieldDto对象作为它的第一个也是唯一的论点/ /(不像使用数组时,使用时可调用的你必须返回一个徽章/ /样式对于所有可能的值)收益率ChoiceField::新(“……”)- >renderAsBadges (静态fn (FieldDto美元场):字符串= >美元场- >getValue () <10吗?“警告”:“主”);/ /没有徽章显示任何值(这是默认行为)收益率ChoiceField::新(“……”)- >renderAsBadges (假);
内置的徽章的风格是一样的引导:“成功”
,“警告”
,“危险”
,“信息”
,“主”
,“二级”
,“光”
,“黑暗”
。
renderAsNativeWidget
默认情况下,当字段值不呈现扩大(见renderExpanded
选项)它使用一种先进的基于JavaScript小部件TomSelect图书馆。使用这个选项如果你喜欢使用一个默认的<选择>
HTML元素:
1
收益率ChoiceField::新(“……”)- >renderAsNativeWidget ();
renderExpanded
默认情况下,可能值的列表是使用先进的JavaScript小部件(或显示<选择>
元素;看到renderAsNativeWidget
选项)。如果列表的元素是短暂的,它会更方便显示所有可能的值:
1
收益率ChoiceField::新(“……”)- >renderExpanded ();
如果allowMultipleChoices
是假的,扩展字段将显示单选按钮:
如果allowMultipleChoices
是真的,扩展字段将显示复选框:
setChoices
这是最重要的选择,因为它设置字段的可能有效的选项。这些选项中定义一样Symfony形式:ob娱乐下载['标签对用户可见' = > ' submitted_value ',…]
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
收益率ChoiceField::新(“……”)- >setChoices ([支付发票的= >“支付”,发票发送,但无薪的= >“等待”,“退还发票”= >“退还”]);/ /除了数组,您可以使用PHP闭包返回的列表值/ /(关闭作为参数给出当前实体实例和FieldDto)收益率ChoiceField::新(“……”)- >setChoices (静态fn (? MyEntity美元喷火):数组= >美元喷火- >someField ()- >getChoices ());收益率ChoiceField::新(“……”)- >setChoices (静态fn (? MyEntity美元喷火,FieldDto美元场):数组= >美元场- >getValue () <10吗?美元喷火- >getLowStockOptions ():美元喷火- >getNormalStockOptions ());
该选项支持PHP枚举,UnitEnum和BackedEnum。假设你有一个支持枚举定义在你的项目:
1 2 3 4 5 6 7
名称空间应用程序\配置;字符串枚举BlogPostStatus: {情况下草案=“草案”;情况下发表了=“发布”;情况下删除=“删除”;}
这个枚举的支持setChoices ()
以不同的方式:
1 2 3 4 5
/ /可以设置的选项显式作为枚举所有可能的情况下收益率ChoiceField::新(“状态”)- >setChoices (BlogPostStatus::例());/ /你可以只选择一些可能的枚举值:收益率ChoiceField::新(“状态”)- >setChoices ([BlogPostStatus::草案,BlogPostStatus::发表);
此外,EasyAdmin提供自动支持学说PHP枚举属性相关联。考虑以下原则实体:
1 2 3 4 5 6 7 8
#(实体)类博客{/ /……#(列(类型:字符串,enumType: BlogPostStatus::类))公共美元状态;}
如果你想显示所有可能的值的枚举,您不必显式地添加它们:
1 2 3
/ /不需要电话- > setChoices ();EasyAdmin会得到所有可能的/ /值通过学说;相当于调用:- > setChoices (BlogPostStatus:例())收益率ChoiceField::新(“状态”);
setTranslatableChoices
PHP不允许使用数组对象作为键。这就是为什么你不能使用setChoices ()
当使用方法TranslatableMessage
对象定义的标签的选择。
相反,使用这种方法,一样的工作setChoices ()
但翻转才能使用值= >标签
而不是标签= >价值
:
1 2 3 4 5 6 7 8 9
使用函数ob娱乐下载\组件\翻译\t;/ /……收益率ChoiceField::新(“……”)- >setTranslatableChoices ([“支付”= > t (支付发票的),“等待”= > t (发票发送,但无薪的),/ /如果你愿意的话,选择一些可以使用字符串而不是对象“退还”= >“退还发票”]);