我正在使用Symfony 2.3
我有一个功能,可以让我在按下时发送电子邮件通知。它会发送电子邮件和所有内容,但是当我想从数据库中检索id以将其作为电子邮件主题的一部分发送时,它无法正常工作。
private function updateForm($data)
{
$repository = $this->getDoctrine()->getRepository('MainBundle:Unity');
$attached = $repository->find('unityid');
$message = \Swift_Message::newInstance()
->setSubject($attached)
->setFrom('some@email')
->setTo('some@email')
->setBody($attached);
$this->get('mailer')->send($message);
return true;
}
我不知道为什么我无法检索ID。我完全像Symfony文档那样做。
我错过了什么?
答案 0 :(得分:1)
假设您希望根据Id
从Unity
实体获取unityid
。要根据特定列精确记录,您可以使用findOneBy()
或findBy()
。在这里,我们使用findOneBy()
doctrine函数来获得单一。确保已将<Your value>
替换为您的值。
$attached = $repository->findOneBy(array('unityid' => '<Your value>'));
您尚未提及Unity
实体的主键,因此我们假设id
是主键列的名称。 $attached
是对象而非值,因此您需要使用getId()
函数来获取id
列的值。
完整代码
<?php
private function updateForm($data)
{
$repository = $this->getDoctrine()->getRepository('MainBundle:Unity');
$attached = $repository->findOnyBy(array('unityid' => '<Your value>'));
$message = \Swift_Message::newInstance()
->setSubject($attached->getId()) // $attached->getId() returns value of "id" column
->setFrom('some@email')
->setTo('some@email')
->setBody($attached);
$this->get('mailer')->send($message);
return true;
}