当我在测试域上的表单类中运行以下代码时:
$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表单元素在它之前,工作正常。
我无法绕过它... 有什么想法吗?
提前感谢!
答案 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',