使用symfony2发送电子邮件

时间:2016-05-07 19:22:35

标签: php symfony email swiftmailer

我尝试创建一个功能,让每个用户都有机会为其他用户发送电子邮件。这是Swiftmailer的基本控制器:

public function contactAction($id)
{
$enquiry = new Enquiry();
$form = $this->createForm(new EnquiryType(), $enquiry);
$from=$this->container->get('security.context')->getToken()->getUser()->getemail();
$em=$this->getDoctrine()->getManager();
$user=$em->getRepository('PfeUserBundle:User')->findBy(array('id'=>$id));       
$request = $this->getRequest();
if ($request->getMethod() == 'POST') {
 $form->bind($request);
    if ($form->isValid()) {
          $message = \Swift_Message::newInstance()
            ->setSubject('Intello')
            ->setFrom($from)
            ->setTo($user->getemail())
            ->setBody($this->renderView('PfeUserBundle:Contact:contactEmail.txt.twig', array('enquiry' => $enquiry)));
        $this->get('mailer')->send($message);
        $this->get('session')->getFlashBag()->add('blogger-notice','Ton message a été envoyé avec succès');
            // Redirect - This is important to prevent users re-posting
            // the form if they refresh the page
            return $this->redirect($this->generateUrl('pfe_intello_contact_mail'));
        }
    }

我有这个错误 错误:在非对象

上调用成员函数getemail()

1 个答案:

答案 0 :(得分:0)

$ user不是一个对象,因为你得到一个数组。

变化:
$用户= $ EM-> getRepository(' PfeUserBundle:用户') - > findBy(阵列(' ID' => $ ID));

分为:
$用户= $ EM-> getRepository(' PfeUserBundle:用户') - > findOneBy(阵列(' ID' => $ ID));