php - 将占位符属性添加到 Zend 2 中的日期输入

标签 php html zend-framework zend-framework2

我想在我的日期输入中添加一个占位符,以向使用 firefox 的访问者显示日期必须具有的格式。
使用 Zend Framework 2,我希望能够生成相当于以下内容的输入:

<input type="date" placeholder="yyyy-mm-dd">

在我的 Form 类中。
这是我现在拥有的 Form 类:

<?php
  namespace MyModule\Form;

  use Zend\Form\Form;

  class MyModuleForm extends Form {
      public function __construct($name = null) {
          parent::__construct('myModule');
          $this->add(array(
              'name' => 'TheDate',
              'type' => 'date',
              'attributes' => array(
                    'placeholder' => 'yyyy-mm-dd',
                    'class' => 'form-control',
               )
          ));
      }
  }
?>

但 Zend 似乎跳过了“占位符”属性并只生成:

<input class="form-control" type="date" value="" name="TheDate">

在最坏的情况下,我知道我也可以改为定义“值”属性(尽管我不想这样做,以防万一用户不注意并且不更改它),或者添加使用 javascript 手动占位符。但是有没有更优雅的方式来完成我想通过 Zend 的 Form 类实现的目标?

最佳答案

编辑:感谢this post,我找到了从一开始就在寻找的答案.

解决方案是进入命名空间 Zend\Form\View\Helper 中的 AbstractHelper.php。

那里有一个 protected 属性数组,应该在全局范围内有效。

添加

'placeholder'        => true,

$validGlobalAttributes 修复了所有问题,这对我来说是一个足够好的答案。
更好的方法是通过继承来更改此变量,而不是将其修改到框架中,但我现在没有足够的时间。

关于php - 将占位符属性添加到 Zend 2 中的日期输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31160800/

相关文章:

html - 一种形式的多个单选按钮组

PHPUnit 显示已达到最大函数嵌套级别 '100',正在中止

mysql - 如何在 zend db 上构建嵌套位置

php - 如何在学说中不加载相同的引用两次

php - 在php中连接n个数组的值

PHP PDO 将多行/值插入到 mySQL 表中

javascript - HTML 下拉列表显示基于用户输入的数据

css - 真正居中的垂直和水平 CSS Div

php - SolrQuery 的 Zend_Paginator 适配器

php - 我应该在我的 PHP 代码中使用断言吗?