0

I've these two entities:

Event:

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;
        }

And Users:

    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;
    }
}

And I try to get an Event, and then by Event, get the User and then, it's Nickname:

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

And I'm getting:

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

Any idea?

However, if I print the result of getUser() it's returning a big load of data (Most related with symfony framework).

4

1 に答える 1

1

まず、エンティティgetNickname()内にメソッドがないため、 を使用する必要があります。UsergetNick()

しかし、問題は別の場所にあると思います。oneToMany関係 betweetEventと を定義しましたUser。したがって、イベントは多くのユーザーに関連している可能性があります。次に、特定のイベントを呼び出すgetUser()と、ユーザーのコレクションが取得されます。次に、 を呼び出すことができる単一のユーザー オブジェクトを取得するために反復する必要がありますgetNick()

于 2013-04-22T11:16:17.940 に答える