从Symfony 2.3中的数据库中提取值

时间:2017-07-13 22:08:51

标签: php symfony doctrine

我正在使用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文档那样做。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

假设您希望根据IdUnity实体获取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;
    }