mvccore/ext-form-field-date

MvcCore - 扩展 - 表单 - 字段 - 日期 - 表单字段类型 - input:date, input:datetime-local, input:time, input:week 和 input:month。

v5.2.5 2024-02-19 15:46 UTC

This package is auto-updated.

Last update: 2024-09-19 17:23:53 UTC


README

Latest Stable Version License PHP Version

MvcCore 表单扩展,支持输入字段类型日期、日期时间、时间、周和月份。

安装

composer require mvccore/ext-form-field-date

字段和默认验证器

  • input:date
    • 日期
      • 默认配置
      • 验证提交值格式、最小值、最大值、步长和危险字符
  • input:datetime-local (由 input:date 扩展)
    • 日期时间
      • 默认配置
      • 验证提交值格式、最小值、最大值、步长和危险字符
  • input:time (由 input:date 扩展)
    • 时间
      • 默认配置
      • 验证提交值格式、最小值、最大值、步长和危险字符
  • input:week (由 input:date 扩展)
      • 默认配置
      • 验证提交值格式、最小值、最大值、步长和危险字符
  • input:month (由 input:date 扩展)
    • 月份
      • 默认配置
      • 验证提交值格式、最小值、最大值、步长和危险字符

特性

  • 始终在服务器端检查属性 requireddisabledreadonly
  • 所有 HTML5 特定和全局属性(见 Mozilla 开发者网络文档
  • 每个字段都有其内置的特定验证器,如上所述
  • 每个内置验证器都会在必要时将表单错误添加到会话中,然后错误页面显示/渲染所有错误,用户提交后将被重定向到错误页面
  • 任何字段都可以自然渲染或使用特定字段类/实例的自定义模板进行渲染
  • 非常可扩展的字段类 - 每个字段都有公共模板方法
    • SetForm() - 在字段实例被添加到表单实例后立即调用
    • PreDispatch() - 在渲染任何字段实例之前立即调用
    • Render() - 在表单实例渲染过程中对每个实例调用
      • 子方法:RenderNaturally()RenderTemplate()RenderControl()RenderLabel() ...
    • Submit() - 在表单提交时对每个实例调用

示例

基本示例

$form = (new \MvcCore\Ext\Form($controller))->SetId('demo');
...
$currentYear = intval(date("Y"));
$bornDate = new \MvcCore\Ext\Forms\Fields\Date();
$bornDate
	->SetName('born_date')
	->SetLabel('I was born:')
	//->SetFormat('Y-m-d') // not required, 'Y-m-d' by default
	->SetMin($currentYear - 130)
	->SetMax($currentYear);
$myMorningTime = new \MvcCore\Ext\Forms\Fields\Time([
	'name'		=> 'my_morning',
	'label'		=> 'I usually get up at morning at:',
	//'format'	=> 'H:i', // not required, 'H:i' by default
	'min'		=> '4:00',
	'max'		=> '10:00',
	'step'		=> 60 * 15, // 15 minutes
]);
...
$form->AddFields($bornDate, $myMorningTime);