0
저는 PHP symfony2에서 새롭습니다. 나는 이메일을 보내기 위해 하나의 수업을 관리하고 싶다.클래스의 "renderView"라는 이름의 정의되지 않은 메소드를 호출하려고 시도했습니다.
services.yml :
mail_helper:
class: HelpBundle\MailSender\EmailManager
arguments: ['@mailer','@templating']
EmailManager :
class EmailManager
{
protected $mailer;
protected $templating;
public function __construct(\Swift_Mailer $mailer,$templating)
{
$this->mailer = $mailer;
$this->templating = $templating;
}
public function sendEmail($fromEmail,$toEmail,$subject,$comments,$status)
{
$message = \Swift_Message::newInstance()
->setSubject($subject)
->setFrom($fromEmail)
->setTo($toEmail)
->setBody($this->templating->renderView('HelpBundle:Emails:add-comment.html.twig', array('comments' => $comments,
'status' => $status,
'subject' => $subject)))
;
$this->mailer->send($message);
}
}
가 내 컨트롤러에서 나는 이렇게 불렀다 : 컨트롤러 액션이라고합니다
public newAction()
{
$mailer = $this->get('mail_helper');
$mailer->sendEmail($fromEmail,$toEmail,$subject,$comments,$ticketStatus);
}
오류는 다음과 같습니다
Attempted to call an undefined method named "renderView" of class "HelpBundle\MailSender\EmailManager".
어떻게 해결할 수 있는지 알고 싶습니다.
덕분에 당신은 services.yml의 사용 서비스에 템플릿을 수 있도록 주입해야 할 많은
사용법을 알려주십시오. 감사합니다 –
나는 전체 코드로 답변을 편집했습니다 – Eimsas
고마워. 이제 디폴트 컨트롤러에서 전자 메일을 보내기 위해 서비스를 요청합니다. 다음 오류 받기 : Catchable Fatal Error : Swift_Mailer :: newInstance()에 전달 된 인수 1은 Swift_Transport의 인스턴스 여야합니다. 아무 것도 지정되지 않고 C : \ Wamp \ www \ help \ src \ HelpBundle \ Controller \ DefaultController.php 온라인에 호출됩니다. 27이고 정의 된 코드는 다음과 같습니다./** @var EmailManager */ protected $ mailer; 공용 함수 __construct() { $ this-> mailer = new EmailManager (\ Swift_Mailer :: newInstance()); } –