ZF2 Zend \ Form \ FormElementManager :: get无法为Zend \ Form \ Element \ Datetime获取或创建实例

时间:2014-08-31 19:08:21

标签: php forms datetime zend-framework2

当我在测试域上的表单类中运行以下代码时:

$dateformat = "Y-m-d H:i";
$this->add(array(
    'name' => 'startdatetime',
    'type' => 'Zend\Form\Element\Datetime',
    'attributes' => array(
        'id' => 'startdatetime',
        'data-format' => "YYYY-MM-DD HH:mm",
        'min' => date($dateformat, $nowdate),
        'max' => date($dateformat, $futuredate),
        'step' => '5', // minutes; default step interval is 1 mint
    ),
    'options' => array(
        'label' => _('Start date and time'),
        'help-block' => _('Enter start date and time (YYYY-MM-DD HH:MM)'),
    ),
));
$this->get('startdatetime')->setFormat($dateformat);

我收到此错误:

Zend\Form\FormElementManager::get was unable to fetch or create an instance for Zend\Form\Element\Datetime

在本地运行时没有错误,一切正常吗? Text和Textarea表单元素在它之前,工作正常。

我无法绕过它... 有什么想法吗?

提前感谢!

1 个答案:

答案 0 :(得分:2)

日期时间元素is registered with the form element manager as an invokable class called datetime。您还可以使用类的完全限定类名,当然这是敏感Zend\Form\Element\DateTime

因此,您需要进行的唯一更改是将T中的Datetime置为大写

'type' => 'Zend\Form\Element\DateTime',

或者使用实际服务名称,与所有服务一样,是不敏感的

'type' => 'datetime',