как передать массив в функцию в Symfony 4 - PullRequest
0 голосов
/ 05 ноября 2019

Отсутствие моих знаний Symfony узкое место меня. Я искал в Интернете, но пока не нашел решения, так что я здесь. Как передать $parameters в sendmail function рендеринг $ данных не работает, я думаю, но он работал, чтобы увидеть, но назвать его ajax ( использование ajax не является причиной ошибки, но рендер ) не работает, я думаю.

**
* some route settings
**
function index(){
    ...
                $parameters = array(
                    'feedtitle' => $feedback->getTitle(),
                    'feedtype' => $feedback->getFeedtype(),
                    'feeddesc' => $feedback->getDescription(),
                    'feedpublish' => $feedback->getPublishedAt(),
                    'feedauthor' => $user->getFirstName() . ' ' . $user->getLastName(),
                );

                $this->sendEmail($parameters, $mailer, "info@fastap.com", 'proclaim@gmail.com');
}
function sendmail($data, $mailer, $from, $to){
    ...
    $message = (new \Swift_Message('Хэрэглэгчдийн санал'))
            ->setFrom($from)
            ->setTo($to)
            ->setBody(
                $this->renderView(
                // templates/emails/issue.html.twig
                    'email/issue.html.twig',
                    ['data' => $data]  <-- not working
                ),
                'text/html'
            )

            ...
}

вот проблема.html.twig

<table style="width:100%; border-collapse:collapse;font-family: sans-serif; text-align: left;">
    <thead>
        <tr style="font-size:14px;">
            <th style="border:1px solid #3d3d3d">Name</th>
            <th style="border:1px solid #3d3d3d">Caption</th>
            <th style="border:1px solid #3d3d3d">Type</th>
            <th style="border:1px solid #3d3d3d">Description</th>
            <th style="border:1px solid #3d3d3d">Date</th>
        </tr>
    </thead>
    <tbody>
        <tr style="font-size:12px;">
            <td style="border:1px solid #3d3d3d">{{ data.feedauthor }}</td>
            <td style="border:1px solid #3d3d3d">{{ data.feedtitle }}</td>
            <td style="border:1px solid #3d3d3d">{{ data.feedtype }}</td>
            <td style="border:1px solid #3d3d3d">{{ data.feeddesc }}</td>
            <td style="border:1px solid #3d3d3d">{{ data.feedpublish }}</td>
        </tr>
    </tbody>
</table>

Ответы [ 2 ]

1 голос
/ 05 ноября 2019

Вам нужно изменить параметр следующим образом:

function sendmail($data, $mailer, $from, $to){
    ...
    $message = (new \Swift_Message('Хэрэглэгчдийн санал'))
            ->setFrom($from)
            ->setTo($to)
            ->setBody(
                $this->renderView(
                // templates/emails/issue.html.twig
                    'email/issue.html.twig',
                    ['data' => $data] 
                ),
                'text/html'
            )

            ...
}
0 голосов
/ 05 ноября 2019

и я изменил, я изменил мой контроллер

             $parameters = array(
                    'feedtitle' => $feedback->getTitle(),
                    'feedtype' => $feedback->getFeedtype(),
                    'feeddesc' => $feedback->getDescription(),
                    'feedpublish' => $feedback->getPublishedAt()->format('Y-m-d H:i:s'), <-- forget to toString() date format
                    'feedauthor' => $user->getFirstName() . ' ' . $user->getLastName(),
                );

, и он работал

Проблема в том, что из-за даты и времени распечатывается веточка, которую я забыл преобразовать, и ее рабочие знания

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