首页 > 解决方案 > 如何将数组传递给symfony 4中的函数

问题描述

缺乏我的 symfony 知识成为了我的瓶颈。我在网上搜索但尚未找到完全解决方案,所以我在这里。我认为如何传递$parameterssendmail function渲染 $data 不起作用,但它可以看到但调用它 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'
            )

            ...
}

这是 issue.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>

标签: phpsymfonysymfony4

解决方案


您需要像这样更改参数:

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'
            )

            ...
}

推荐阅读