2017-07-13 25 views
1

我正在使用Symfony 2.3在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('[email protected]') 
       ->setTo('[email protected]') 
       ->setBody($attached); 
       $this->get('mailer')->send($message); 
return true; 
} 

我不知道爲什麼我不能檢索ID。我正在像Symfony文檔所說的那樣做。

我錯過了什麼?

+0

您使用該ID在做什麼?打印或返回該ID?回報真實! – zod

+0

我只是將它發送到電子郵件 - > setBody –

+0

存儲庫'find()'方法通過其主鍵/標識符查找實體。 ''unityid''看起來可能是列名而不是主鍵值。 –

回答

1

假設您想根據unityidUnity實體獲得Id。要根據特定列精細記錄,您可以使用findOneBy()findBy()。這裏我們使用findOneBy()教義函數來獲得單個。確保您已將您的價值替換爲<Your value>

$attached = $repository->findOneBy(array('unityid' => '<Your value>')); 

所以我們假設id是主鍵字段的名字你還沒有提到你的Unity實體的主鍵。 $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('[email protected]') 
      ->setTo('[email protected]') 
      ->setBody($attached); 
      $this->get('mailer')->send($message); 
     return true; 
    } 
+0

謝謝!這就是我一直在尋找的! –