2013-04-22 227 views
0

我有這兩個實體:getNickname()是未定義

事件:

class Event 
    { 
     /** 
     * @var integer 
     * 
     * @ORM\Column(name="id", type="integer") 
     * @ORM\Id 
     * @ORM\GeneratedValue(strategy="AUTO") 
     */ 
     private $id; 

     /** 
     * @var string 
     * 
     * @ORM\Column(name="title", type="string", length=255) 
     */ 
     private $title; 

     /** 
     * @var string 
     * 
     * @ORM\Column(name="description", type="string", length=255) 
     */ 
     private $description; 

     /** 
     * @var boolean 
     * 
     * @ORM\Column(name="invitationPermission", type="boolean") 
     */ 
     private $invitationPermission; 

     /** 
     * @var \DateTime 
     * 
     * @ORM\Column(name="creationDate", type="date") 
     */ 
     private $creationDate; 

     /** 
     * @var \DateTime 
     * 
     * @ORM\Column(name="modifiedDate", type="date") 
     */ 
     private $modifiedDate; 

     /** 
     * @ORM\OneToMany(targetEntity="Users", mappedBy="id") 
     */ 
     private $user; 


     /** 
     * Get id 
     * 
     * @return integer 
     */ 
     public function getId() 
     { 
      return $this->id; 
     } 

     /** 
     * Set title 
     * 
     * @param string $title 
     * @return Event 
     */ 
     public function setTitle($title) 
     { 
      $this->title = $title; 

      return $this; 
     } 

     /** 
     * Get title 
     * 
     * @return string 
     */ 
     public function getTitle() 
     { 
      return $this->title; 
     } 

     /** 
     * Set description 
     * 
     * @param string $description 
     * @return Event 
     */ 
     public function setDescription($description) 
     { 
      $this->description = $description; 

      return $this; 
     } 

     /** 
     * Get description 
     * 
     * @return string 
     */ 
     public function getDescription() 
     { 
      return $this->description; 
     } 

     /** 
     * Set invitationPermission 
     * 
     * @param boolean $invitationPermission 
     * @return Event 
     */ 
     public function setInvitationPermission($invitationPermission) 
     { 
      $this->invitationPermission = $invitationPermission; 

      return $this; 
     } 

     /** 
     * Get invitationPermission 
     * 
     * @return boolean 
     */ 
     public function getInvitationPermission() 
     { 
      return $this->invitationPermission; 
     } 

     /** 
     * Set creationDate 
     * 
     * @param \DateTime $creationDate 
     * @return Event 
     */ 
     public function setCreationDate($creationDate) 
     { 
      $this->creationDate = $creationDate; 

      return $this; 
     } 

     /** 
     * Get creationDate 
     * 
     * @return \DateTime 
     */ 
     public function getCreationDate() 
     { 
      return $this->creationDate; 
     } 

     /** 
     * Set modifiedDate 
     * 
     * @param \DateTime $modifiedDate 
     * @return Event 
     */ 
     public function setModifiedDate($modifiedDate) 
     { 
      $this->modifiedDate = $modifiedDate; 

      return $this; 
     } 

     /** 
     * Get modifiedDate 
     * 
     * @return \DateTime 
     */ 
     public function getModifiedDate() 
     { 
      return $this->modifiedDate; 
     } 

     /** 
     * Set user 
     * 
     * @param user $user 
     * @return Event 
     */ 
     public function setUser($user) 
     { 
      $this->user = $user; 

      return $this; 
     } 

     /** 
     * Get user 
     * 
     * @return user 
     */ 
     public function getUser() 
     { 
      return $this->user; 
     } 

而且用戶

class Users 
{ 
    /** 
    * @var integer 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="email", type="string", length=255) 
    */ 
    private $email; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="nick", type="string", length=255) 
    */ 
    private $nick; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="pwd", type="string", length=255) 
    */ 
    private $pwd; 


    /** 
    * Get id 
    * 
    * @return integer 
    */ 
    public function getId() 
    { 
     return $this->id; 
    } 

    /** 
    * Set email 
    * 
    * @param string $email 
    * @return Users 
    */ 
    public function setEmail($email) 
    { 
     $this->email = $email; 

     return $this; 
    } 

    /** 
    * Get email 
    * 
    * @return string 
    */ 
    public function getEmail() 
    { 
     return $this->email; 
    } 

    /** 
    * Set nick 
    * 
    * @param string $nick 
    * @return Users 
    */ 
    public function setNick($nick) 
    { 
     $this->nick = $nick; 

     return $this; 
    } 

    /** 
    * Get nick 
    * 
    * @return string 
    */ 
    public function getNick() 
    { 
     return $this->nick; 
    } 

    /** 
    * Set pwd 
    * 
    * @param string $pwd 
    * @return Users 
    */ 
    public function setPwd($pwd) 
    { 
     $this->pwd = $pwd; 

     return $this; 
    } 

    /** 
    * Get pwd 
    * 
    * @return string 
    */ 
    public function getPwd() 
    { 
     return $this->pwd; 
    } 
} 

我試圖讓一個事件,然後按事件,得到用戶,然後,它的暱稱:

$event = $em->getRepository('MyBundle:Event')->findOneById(1); 
print_r($event->getUser()->getNickname()); 

而且我越來越:

Fatal error: Call to undefined method Doctrine\ORM\PersistentCollection::getNickname() in C:\xampp\htdocs\web\src\KNV\MyBundle\Controller\DefaultController.php on line 43 

任何想法?

但是,如果我打印getUser()的結果,它會返回大量的數據(與symfony框架最相關)。

+0

一個擁有單個用戶信息的類應該被命名爲'User',而不是'Users'。 – moonwave99 2013-04-22 11:42:09

+0

@ moonwave99完全正確,實際上我在創建其他實體後才注意到它,但是它只是一些用於測試目的的實體,並不是什麼大不了的事情。感謝您的提示 – Reinherd 2013-04-22 11:45:01

回答

1

首先,您的User實體中沒有getNickname()方法,則應該使用getNick()

但我認爲問題在別處,您定義了EventUser之間的關係。所以,一個事件可能與許多用戶有關。然後,如果您在給定活動中致電getUser(),那麼您將獲得一組用戶。然後,您應該重複獲取可以稱爲getNick()的單個用戶對象。

+0

你在兩點上都是對的。更改爲OneToOne並且完全正確,它的getNick,沒有得到nickname ..愚蠢的錯誤...現在,在更改這兩個東西后,我得到這個錯誤:'在類'KNV \ MyBundle \ Entity'上未找到字段'id'的映射\用戶。 ' – Reinherd 2013-04-22 11:39:34

+0

這是代碼:'@ORM \ OneToOne(targetEntity =「Users」,mappedBy =「id」)' – Reinherd 2013-04-22 11:50:59

+0

done,缺少'@ORM \ JoinColumn(name =「id」,referencedColumnName =「id」)' asTo OneToOne – Reinherd 2013-04-22 11:59:15