silverstripe/multivaluefield

此包已被废弃且不再维护。作者建议使用 symbiote/silverstripe-multivaluefield 包代替。

一个数据库字段 + 表单字段,用于在单个属性中存储多个值(序列化)。

安装量: 202 197

依赖项: 11

建议者: 0

安全: 0

星标: 46

关注者: 9

分支: 43

类型:silverstripe-vendormodule

5.2.1 2022-01-17 04:39 UTC

README

Build Status SilverStripe supported module

备注

  • 该模块的 SilverStripe 2.4 兼容版本仍可在 ss24 分支中找到
  • SilverStripe 3.x 兼容版本仍可在 2.x 分支中找到。(查看版本信息)

一种数据库字段类型,允许在单个数据库字段中存储多个离散值。这也提供了以简单方式输入多个值的表单字段

  • MultiValueTextField - 显示一个文本字段。当输入数据时,直接在下方显示另一个文本字段。后续数据输入会触发更多文本字段的显示
  • MultiValueDropdownField - 显示一个下拉字段。当选择一个值时,会显示另一个下拉字段。

在模板中,字段可以像数据对象集一样迭代。属性 $Value 以 Varchar 类型提供,并且从 ViewableData 继承了其他典型属性,如 $FirstLast 等。

数据以序列化 PHP 格式存储在数据库中。虽然这不适合搜索目的,但某些外部索引引擎(例如 Solr 模块)知道字段类型并会相应地索引。

版本信息

此版本的 MultiValueField 支持 SilverStripe 4.0.0

在以下次要版本分支上支持 SilverStripe 的较旧版本

安装

composer require symbiote/silverstripe-multivaluefield

基本用法

与所有数据库字段一样

private static $db = array(
    'Keywords' 	=> 'MultiValueField',
);

要在前端使用字段,您可以遍历 Items 属性

<% loop $Keywords.Items %>
    <p>$Key $Value</p>
<% end_loop %>

在这种情况下,$Value 是一个 Varchar 对象,因此您可以在其上调用所有相关的字符串字段方法,例如 $Value.Raw$Value.LimitWordCount 等。

请注意,要使 $Key 值可用为非整数值,请使用 KeyValueField 字段类型来填充字段。

您可以在字段中这样设置 KeyValueField 的键和值占位符值

$kvf = KeyValueField::create(
    'MultiChoiceAnswer',
    'Multiple Choice Answers'
);
$kvf->setValueFieldPlaceholder('Value');
$kvf->setKeyFieldPlaceholder('Label');

维护者联系方式

要求

  • SilverStripe 4.0

贡献

感谢

翻译

自然语言字符串的翻译通过第三方翻译接口 transifex.com 进行管理。新添加的字符串将被定期上传到该网站进行翻译,任何新的翻译将被合并回项目源代码。

请使用 https://www.transifex.com/projects/p/silverstripe-multivaluefield 贡献翻译,而不是发送包含 YAML 文件的拉取请求。

许可证

本模块遵循 BSD 许可证,可在 http://silverstripe.org/BSD-license 查看。

项目链接