webtorque/silverstripe-nhi-field

提供 NHI 数据库字段和 NHI 表单字段以跟踪新西兰的“国家健康索引”编号。

安装: 307

依赖项: 0

建议者: 0

安全: 0

星级: 0

关注者: 3

分支: 1

公开问题: 0

类型:silverstripe-module

v0.1.0 2017-09-26 21:05 UTC

This package is not auto-updated.

Last update: 2024-09-15 05:07:58 UTC


README

一个 Silverstipe 模块,用于提供 NHI 数据库字段和 NHI 表单字段以跟踪新西兰的“国家健康索引”编号。

Build Status

功能

  • 自定义数据库字段类型
  • 自定义表单字段类型,具有基本的模式验证和校验和验证。
  • 始终以大写形式保存 NHI。

要求

  • PHP 5.4 或更高版本(已测试至 PHP 7.1)
  • silverstripe/framework:^3.0
  • silverstripe/cms:^3.0

安装

composer require webtorque/silverstripe-nhi-field:^0.0

使用

在 DataObject 上指定 NHI 数据库字段

class Patient extends DataObject {
    private static $db = [
        'NationalHealthIndex' => 'NHI',
    ];
}

NHI 字段类型等同于 Varchar(7)。当搭建表单时,任何 NHI 数据库字段都将自动使用 NHIField 表单字段而不是 TextField

验证 NHI

只需在您的表单中使用 NHIField 并正常验证表单。

$nhiField = NHIField::create(
    $name = 'nhi',                      // required
    $title = 'National Health Index',   // optional
    $value = 'CGC2720',                 // optional
    $form = null,                       // optional
    $html5pattern = false               // optional, output an `html5` pattern attribute
);

NHIFieldTextField 的简单扩展,以下为修改内容

  • 自动设置 maxlength 为 7。
  • 设置字段的值时,将自动转换为大写。
  • 使用基本正则表达式和 校验和(根据 NHI 标准)进行验证。
  • 您可以通过 $nhiField->setHtml5Pattern(true); 输出一个 html5 pattern 属性。

出于测试目的,可以通过在 NHIField 配置中设置 disable_checksum_validation 标志来禁用校验和验证。

if (Director::isDev()) {
    NHIField::config()->disable_checksum_validation = true;
}