我有一个实体用户
class Users
{
//...
/**
* @ORM\Column(name="firstName", type="string", length=50, nullable=true)
*/
private $firstname;
public function getFirstname()
{
return $this->firstname;
}
/*
*@ORM\OneToMany(targetEntity='Worksamples', mappedBy='user')
*/
private $worksample;
public function __constraction()
{
$this->worksample = new ArrayCollection();
}
public function getWorksample()
{
$this->worksample;
}
}
和另一个名为 Worksamples 的实体
class Worksamples
{
//...
/**
* @ORM\Column(name="sampleSource", type="string", length=255, nullable=false)
*/
private $samplesource;
public function getSamplesource()
{
return $this->samplesource;
}
/**
* @ORM\Column(name="UserId", type="integer", nullable=false)
*/
private $userid;
public function getUserid()
{
return $this->userid;
}
/*
*@ORM\ManyToOne(targetEntity="Users", inversedBy="worksample")
*@ORM\JoinColumn(name="UserId", referencedColumnName="id")
*/
private $user;
public function getUser()
{
return $this->user;
}
}
在我的控制器中我有这个动作
public function indexAction($id)
{
$user = $this->getDoctrine()
->getRepository('AcmeWellcomeBundle:Users')
->find($id);
$sample = $user->getWorksample()->getSamplesource();
return $this->render('AcmeWellcomeBundle:Default:index.html.twig', array('sample' => $sample));
}
我有这个错误
FatalErrorException: 错误: 在 .... 中的非对象上调用成员函数 getSamplesource()
它假设一个用户有许多工作样本,而一个工作样本只有一个用户。
有什么帮助吗?