Symfony2. Как правильно обратиться к mailer? Здравствуйте, уважаемые знатоки! Подскажите мне пожалуйста, что я делаю неправильно (я нуб, не ругайтесь). Вот кусок кода:public function showAction(Request $request) { $dataMail = [ 'name' => '', 'subject' => '', 'email' => '', 'message' => '', ]; $form = $this->formFactory->create('send_mail_form', $dataMail);
if ($request->getMethod() == 'POST') { $form->bind($request); $dataMail = $form->getData(); $message = \Swift_Message::newInstance() ->setSubject($dataMail['subject']) ->setFrom($dataMail['email']) ->setTo('mail@mail.ru') ->setBody($this->renderView('AllergoMainBundle:Service:body_mail.html.twig', [ 'name' => $dataMail['name'], 'message' => $dataMail['message'], ])); $this->get('mailer')->send($message); } return [ 'form' => $form->createView(), ]; } Вылазит такая ошибка, как я понял из-за $this->get('mailer'):Error: Call to a member function get() on a non-objectМне кажется я понял как решить проблему, нужно найти наймспейс мэйлера, я не могу его найти
Для обращения к mailer в Symfony2, вы можете использовать Dependency Injection. Определите зависимость на mailer в конструкторе вашего контроллера или сервиса, и Symfony автоматически внедрит необходимый объект mailer при создании экземпляра класса.
В этом примере $this->container->get('mailer') используется для получения объекта mailer из контейнера зависимостей. Убедитесь, что вы убрали ->get('mailer') из других мест в вашем коде.
Для обращения к mailer в Symfony2, вы можете использовать Dependency Injection. Определите зависимость на mailer в конструкторе вашего контроллера или сервиса, и Symfony автоматически внедрит необходимый объект mailer при создании экземпляра класса.
Пример:
use Symfony\Component\DependencyInjection\ContainerInterface;class YourController
{
private $container;
public function __construct(ContainerInterface $container)
{
$this->container = $container;
}
public function showAction(Request $request)
{
$dataMail = [
'name' => '',
'subject' => '',
'email' => '',
'message' => '',
];
$form = $this->formFactory->create('send_mail_form', $dataMail);
if ($request->getMethod() == 'POST') {
$form->bind($request);
$dataMail = $form->getData();
$message = \Swift_Message::newInstance()
->setSubject($dataMail['subject'])
->setFrom($dataMail['email'])
->setTo('mail@mail.ru')
->setBody($this->renderView('AllergoMainBundle:Service:body_mail.html.twig', [
'name' => $dataMail['name'],
'message' => $dataMail['message'],
]));
$this->container->get('mailer')->send($message);
}
return [
'form' => $form->createView(),
];
}
}
В этом примере $this->container->get('mailer') используется для получения объекта mailer из контейнера зависимостей. Убедитесь, что вы убрали ->get('mailer') из других мест в вашем коде.