0

我想使用从 FOSUserBundle 继承的 User 类的 get 方法。但我有一个错误:

致命错误:在非对象上调用成员函数 getNom()。

我的用户类:

<?php
namespace Olr\LoanBundle\Entity;

use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="fos_user")
 */
class User extends BaseUser
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\Column(type="string", length=255)
     *
     */
    protected $nom;

    /**
     * @ORM\Column(type="string", length=255)
     *
     */
    protected $prenom;

    /**
     * @ORM\Column(type="string", length=50)
     *
     */
    protected $adresse;

    /**
     * @ORM\Column(type="string", length=50)
     *
     */
    protected $adresse2;

    /**
     * @ORM\Column(type="string", length=5)
     *
     */
    protected $cp;

    /**
     * @ORM\Column(type="string", length=50)
     *
     */
    protected $ville;


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

    /**
     * Set nom
     *
     * @param string $nom
     */
    public function setNom($nom)
    {
        $this->nom = $nom;
    }

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

    /**
     * Set prenom
     *
     * @param string $prenom
     */
    public function setPrenom($prenom)
    {
        $this->prenom = $prenom;
    }

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

    /**
     * Set adresse
     *
     * @param string $adresse
     */
    public function setAdresse($adresse)
    {
        $this->adresse = $adresse;
    }

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

    /**
     * Set adresse2
     *
     * @param string $adresse2
     */
    public function setAdresse2($adresse2)
    {
        $this->adresse2 = $adresse2;
    }

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

    /**
     * Set cp
     *
     * @param string $cp
     */
    public function setCp($cp)
    {
        $this->cp = $cp;
    }

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

    /**
     * Set ville
     *
     * @param string $ville
     */
    public function setVille($ville)
    {
        $this->ville = $ville;
    }

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

从我的控制器:

public function invitationAction($token)
{
    $em = $this->getDoctrine()->getEntityManager();
    $entity = $em->getRepository('OlrLoanBundle:User')->findBy(array('salt'=>$token));

    return $this->render('OlrLoanBundle:Tribu:invitation.html.twig',
        array('nom'=>$entity->getNom(),
              'prenom'=>$entity->getPrenom(),
            ));
}
4

1 回答 1

5

findBy()返回 an array,因此您不能在其上调用方法。

于 2013-02-11T21:40:57.640 回答