Как исправить допустимый объем памяти, исчерпанный в Laravel Swiftmailer? - PullRequest
1 голос
/ 31 марта 2020

Здравствуйте, у меня есть эта проблема. Я обновил свой проект Laravel с 5,4 до 5,7. После того, как я больше не мог отправлять письма. Я удостоверился, что у меня есть правильный пакет Swiftmailer и все Версии. После некоторых исследований я обнаружил, что мое приложение падает на Mailer. php в функции addContent ().

protected function addContent($message, $view, $plain, $raw, $data)
    {
        if (isset($view)) {
            /* At this Point my application is crashing.
            $message->setBody($this->renderView($view, $data), 'text/html');
            */
        }

        if (isset($plain)) {
            $method = isset($view) ? 'addPart' : 'setBody';

            $message->$method($this->renderView($plain, $data), 'text/plain');
        }

        if (isset($raw)) {
            $method = (isset($view) || isset($plain)) ? 'addPart' : 'setBody';

            $message->$method($raw, 'text/plain');
        }
    }

My php errorlog показывает это сообщение об ошибке:

"PHP Fatal error:  Allowed memory size of 536870912 bytes exhausted (tried to allocate 32768 bytes) in C:\\webroot\\projectname\\vendor\\symfony\\debug\\Exception\\FatalErrorException.php on line 1, referer: http://localhost/intranet/projectname/other-applications/create"

У кого-нибудь есть несколько советов, как я могу решить мою проблему?

1 Ответ

0 голосов
/ 31 марта 2020

После еще одного исследования я обнаружил, что в моем контроллере происходит сбой, когда я создаю сообщение.

Это мой контроллер:

<?php

namespace App\Mail;

use App\Models\Application;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class ApplicationCreated extends Mailable
{
    use Queueable, SerializesModels;

    public $isForSecretary;
    public $isForHeadPhysician;
    public $isForManagement;

    public $application;
    public $customMsg;

    /**
     * ApplicationCreated constructor.
     * @param Application $application
     * @param $isForSecretary
     * @param $isForHeadPhysician
     * @param null $customMsg
     */
    public function __construct(Application $application, $isForSecretary, $isForHeadPhysician, $customMsg = null)
    {
        $this->application = $application;
        $this->isForSecretary = $isForSecretary;
        $this->isForHeadPhysician = $isForHeadPhysician;
        $this->customMsg = $customMsg;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {

        $applicant = $this->application->applicant;

        return $this->view('application.responses.emails.application_created')
            ->subject('Reiseantrag: ' . $applicant->title . ' ' . $applicant->lastname)
            ->withApplication($this->application)
            ->withMail($this)
            ->with('customMsg', $this->customMsg);
    }
}

В функции сборки это похоже, что он где-то падает в операторе возврата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...