2013-02-22 9 views
-1

我在zend framework-2中使用Annotation类创建表单。在这个类中,我尝试使用Annotation创建日期字段,但它不显示在窗体上。请帮助我如何使用注释设置vdate字段属性。如何使用Annotation类创建日期字段?

代码TestEntity.php

<?php 

namespace TestAjax\Model; 

use Zend\Form\Annotation; 


/* 
* @Annotation\Hydrator("Zend\Stdlib\Hydrator\ObjectProperty") 
* @Annotation\Name("TestEntity") 
*/ 
class TestEntity 
{ 


/** 
* @Annotation\Type("Zend\Form\Element\Date") 
* @Annotation\Required({"required":"true" }) 
* @Annotation\Filter({"name":"vdate"}) 
* @Annotation\Validator({"name":"Between", "options":{"min":"1970-01-01" "max":"2013-12-31"}})      
* @Annotation\Options({"label":"Date:"}) 
*/ 
public $vdate; 

/** 
* @Annotation\Type("Zend\Form\Element\Text") 
* @Annotation\Required({"required":"true"}) 
* @Annotation\Filter({"name":"StripTags"}) 
* @Annotation\Validator({"name":"StringLength", "options":{"min":"5"}}) 
* @Annotation\Options({"label":"Last Name:"}) 
*/ 
public $lastname; 

/** 
* @Annotation\Type("Zend\Form\Element\Radio") 
* @Annotation\Required({"required":"true" }) 
* @Annotation\Filter({"name":"StripTags"}) 
* @Annotation\Options({"label":"Gender:", 
*      "value_options" : {"1":"Male","2":"Female"}}) 
* @Annotation\Validator({"name":"InArray", 
*      "options":{"haystack":{"1","2"}, 
*        "messages":{"notInArray":"Gender is not valid"}}}) 
* @Annotation\Attributes({"value":"1"}) 
*/ 
public $gender; 

/** 
* @Annotation\Type("Zend\Form\Element\Select") 
* @Annotation\Required({"required":"true" }) 
* @Annotation\Filter({"name":"StripTags"}) 
* @Annotation\Options({"label":"Class:", 
*      "value_options" : {"0":"Select a Class","1":"A","2":"B","3":"C"}}) 
* @Annotation\Validator({"name":"InArray", 
*      "options":{"haystack":{"1","2","3"}, 
*        "messages":{"notInArray":"Please Select a Class"}}}) 
* @Annotation\Attributes({"value":"0"}) 
*/ 
public $class; 


/** 
* @Annotation\Type("Zend\Form\Element\Text") 
* @Annotation\Required({"required":"true" }) 
* @Annotation\Filter({"name":"StripTags"}) 
* @Annotation\Options({"label":"Username:"}) 
*/ 
public $username; 

/** 
* @Annotation\Type("Zend\Form\Element\Password") 
* @Annotation\Required({"required":"true" }) 
* @Annotation\Filter({"name":"StripTags"}) 
* @Annotation\Options({"label":"Password:"}) 
*/ 
public $password; 
/** 
* @Annotation\Type("Zend\Form\Element\Submit") 
* @Annotation\Attributes({"value":"Submit"}) 
*/ 
public $submit; 
} 

回答

-1

使用普通文本字段(Zend的\表格\元素\文),然后使用jQuery的日期选择器的UI

+0

那不是问题 – Sam 2013-02-22 09:38:07

0

如果您使用的学说那就试试这个方法:

这包括你的前级声明:

<?php 
    namespace Test\Entity; //Test is your module name and Entity is your folder 

    use Doctrine\ORM\Mapping as ORM; 
    use Zend\Form\Annotation; 

    use Doctrine\Common\Collections\ArrayCollection; 
    use Doctrine\Common\Collections\Collection; 

/** 
* Test 
* 
* @ORM\Table(name="test") 
* @ORM\Entity 
* @Annotation\Name("Test") 
* @Annotation\Hydrator("Zend\Stdlib\Hydrator\ClassMethods") 
* @property int $id 
* @property ............ other variable/column name 

class Test //your file name must be Test.php 
{ 

然后加上这个日期

/** 
    * @var \DateTime 
    * 
    * @ORM\Column(name="vdate", type="datetime", nullable=false) 
    * @Annotation\Attributes({"type":"datetime","min":"2010-01-01T00:00:00Z","max":"2020-01-01T00:00:00Z","step":"1"}) 
    * @Annotation\Options({"label":"V Date:", "format":"Y-m-d\TH:iP"}) 
    */ 
public $vdate; 

这应该有所帮助。

相关问题