symiote/silverstripe-multivaluefield

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

安装量: 349,974

依赖项: 55

建议者: 0

安全: 1

星标: 47

关注者: 10

分支: 44

开放问题: 4

类型:silverstripe-vendormodule


README

CI Silverstripe supported module

备注

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

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

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

在模板中,可以根据数据对象集迭代字段。$Value 作为 Varchar 类型可用,其他典型属性(如 $FirstLast 等)继承自 ViewableData。

数据以序列化的 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 下授权

项目链接