2013-02-07 93 views
3

我正在使用Zend Framework 2並創建了一個User Entity。現在我正在嘗試使用戶名字段唯一。但是,下面的錯誤即將到來。UniqueEntity using Doctrine 2

[Semantical Error] The annotation "@UniqueEntity" in class User\Entity\User was never imported. Did you maybe forget to add a "use" statement for this annotation? 

我已經加入此代碼爲唯一性檢查

@UniqueEntity("email") 

我可以看到,它是在使用的Symfony的方法。我如何將它用於Zend Framework 2?

這是我使用

<?php 

namespace User\Entity; 

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

/** 
* A user entity. 
* 
* @ORM\Entity 
* @ORM\Table(name="users") 
* @UniqueEntity("email") 

* @property int $id 
* @property string $username 
* @property string $email 
* @property string $password 
* 
* @Annotation\Name("User") 
*/ 
class User { 

    /** 
    * @ORM\Id 
    * @ORM\Column(type="integer"); 
    * @ORM\GeneratedValue(strategy="AUTO") 
    * 
    * @Annotation\Required(false) 
    */ 
    protected $id; 

    /** 
    * @ORM\Column(type="string") 
    * 
    * @Annotation\Attributes({"type":"text"}) 
    * @Annotation\Options({"label":"Username:"}) 
    * @Annotation\Filter({"name":"StringTrim"}) 
    * @Annotation\Filter({"name":"StripTags"}) 
    */ 
    protected $username; 

    /** 
    * @ORM\Column(type="string") 
    * 
    * @Annotation\Attributes({"type":"text" }) 
    * @Annotation\Options({"label":"Email:"}) 
    * @Annotation\Filter({"name":"StringTrim"}) 
    * @Annotation\Filter({"name":"StripTags"}) 
    */ 
    protected $email; 

    /** 
    * @ORM\Column(type="string") 
    * 
    * @Annotation\Attributes({"type":"text" }) 
    * @Annotation\Options({"label":"Password:"}) 
    * @Annotation\Filter({"name":"StringTrim"}) 
    * @Annotation\Filter({"name":"StripTags"}) 
    */ 
    protected $password;  

    public function __get($property) { 
    return $this->$property; 
    } 

    /** 
    * Magic setter to save protected properties. 
    * 
    * @param string $property 
    * @param mixed $value 
    */ 
    public function __set($property, $value) { 
    $this->$property = $value; 
    } 

    public function getArrayCopy() { 
    return array(
     'username' => $this->username, 
     'email' => $this->email, 
     'surname' => $this->surname, 
     'first_name' => $this->first_name, 
     'company' => $this->company, 
     'postcode' => $this->postcode, 
    ); 
    } 

    public function populate($data) { 
    $this->username = isset($data['username']) ? $data['username'] : $this->username; 
    } 

    public function setDate($property, $value){ 
    $this->$property = new \DateTime($value); 
    } 

} 
+0

谷歌的2秒:(http://docs.doctrine-project.org/en/2.0.x/reference/annotations-reference.html#annref-uniqueconstraint – Sam

+0

lol)))))))))) ) –

回答