nepada / birth-number-input
Czech出生号码表单输入,适用于Nette表单。
v1.3.0
2023-09-28 19:55 UTC
Requires
- php: >=8.1.0 <8.4
- nepada/birth-number: ^1.0@dev
- nette/forms: ^3.1@dev
- nette/utils: ^3.2@dev || ^4.0@dev
Requires (Dev)
- composer-runtime-api: ^2.0
- composer/semver: 3.4.0
- mockery/mockery: 1.6.6
- nepada/coding-standard: 7.13.0
- nepada/phpstan-nette-tester: 1.1.0
- nette/bootstrap: >=3.1@dev
- nette/component-model: >=3.0.2
- nette/di: ^3.0.6@dev
- nette/http: >=3.1.0@dev
- nette/schema: ^1.0.3@dev
- nette/tester: 2.5.1
- php-parallel-lint/php-parallel-lint: 1.3.2
- phpstan/phpstan: 1.10.32
- phpstan/phpstan-mockery: 1.1.1
- phpstan/phpstan-nette: 1.2.9
- phpstan/phpstan-strict-rules: 1.5.1
- shipmonk/phpstan-rules: 2.7.0
- spaze/phpstan-disallowed-calls: 2.16.0
This package is auto-updated.
Last update: 2024-09-01 05:58:07 UTC
README
安装
通过Composer
$ composer require nepada/birth-number-input
选项A:通过DI扩展安装表单容器扩展方法
extensions: - Nepada\Bridges\BirthNumberInputDI\BirthNumberInputExtension
它将注册扩展方法 addBirthNumber($name, $label = null): BirthNumberInput
到 Nette\Forms\Container
。
选项B:在您的基表单/容器类中使用特性
您也可以在您的基表单/容器类中使用 BirthNumberInputMixin
特性来添加方法 addBirthNumber($name, $label = null): BirthNumberInput
。
示例
trait FormControls { use Nepada\Bridges\BirthNumberInputForms\BirthNumberInputMixin; public function addContainer($name) { $control = new Container; $control->setCurrentGroup($this->getCurrentGroup()); if ($this->currentGroup !== null) { $this->currentGroup->add($control); } return $this[$name] = $control; } } class Container extends Nette\Forms\Container { use FormControls; } class Form extends Nette\Forms\Form { use FormControls; }
用法
BirthNumberInput
是一个表单控件,它使用出生号码值对象来表示其值(有关详细信息,请参阅 nepada/birth-number)。它自动验证用户输入,并且 getValue()
方法始终返回 BirthNumber
实例,或者 null
如果输入未填写。
$birthNumberInput = $form->addBirthNumber('birthNumber'); $birthNumberInput->setValue('invalid'); // \InvalidArgumentException is thrown $birthNumberInput->setValue('000101 / 0009'); // the value is internally converted to BirthNumber value object $birthNumberInput->getValue(); // BirthNumber instance for 000101/0009
客户端验证
使用预编译包
使用预编译包是快速实现客户端验证的简单方法。
<script src="https://unpkg.com/nette-forms@%5E3.0/src/assets/netteForms.min.js"></script> <script src="https://unpkg.com/@nepada/birth-number-input@%5E1.0/dist/birth-number-input.min.js"></script>
构建自己的包
强烈建议通过nmp安装客户端包并编译自己的包。
以下是一个用于初始化出生号码输入和Nette表单的示例脚本。
import Nette from 'nette-forms'; import initializeBirthNumberInput from '@nepada/birth-number-input'; initializeBirthNumberInput(Nette); Nette.initOnLoad();