我有一个工人实体
/**
* Worker
*
* @ORM\Table(name="worker")
* @ORM\Entity
*/
class Worker
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
}
和这样的发票实体:
/**
* Invoice
*
* @ORM\Table(name="Invoice")
*/
class Invoice
{
/**
* @ORM\ManyToOne(targetEntity="Worker")
* @ORM\JoinColumn(name="fkWorker", referencedColumnName="id")
**/
private $worker;
}
所以在我的控制器中
$em = $this->getDoctrine()->getManager();
$invoice = $em->getRepository('SkaLab\Bundle\FrontEndBundle\Entity\Invoice')->find(8);
但我不明白这最后一行会返回如下的异常:
Notice: Undefined index: Invoice
500 Internal Server Error - ContextErrorException
我怎么知道?
答案 0 :(得分:0)
虽然它无法解决您的问题,但为了良好的做法,我会更改您的Worker
课程,以便用大写字母定义,即@ORM\Table(name="Worker")
确保一致性。
答案 1 :(得分:0)
Invoice实体没有标识符。 你没有复制/粘贴它吗?
然后,尝试将您的实体称为:
getRepository('SkalableFrontEndBundle:Invoice')
而不是完整的命名空间,它可能是一个错字。
如果它仍然存在,请在您的问题中分享错误的完整日志。