【问题标题】:yii2: how to render a view in mailyii2:如何在邮件中渲染视图
【发布时间】:2015-03-08 19:07:32
【问题描述】:

我可以使用 swiftmailer 扩展程序发送邮件。我还可以包含 @app/mail 文件夹中的视图文件。

现在我想知道如何为我的模型视图包含数据,例如说我有一个 Model City.php 和相关视图作为 view.php 或 index.php(grid-view) 如何包含呈现的数据在 view.php(单条记录)或邮件正文中 index.php 中的表格数据。

简而言之,我想将 yii2 中呈现的默认数据包含在邮件正文中的视图或索引中。

你好,我看过这个例子 - Yii::$app->mailer->compose('viewName', ['variable' => $variable])

另一个例子 - Yii::$app->mailer->compose('contact/html', ['contactForm' => $form])

我已经尝试过这样但没有太大成功:

Yii::$app->mailer->compose('medicine-request-entry/html',['medicine_request_entry'=>$form])

但我收到错误未定义的变量形式。 medicie_request_entry 是views 文件夹中的文件夹。(不在@app/views 中)

但无法获得。在 /mail/ 子文件夹中说我的视图名称是 report.php ,我的视图子文件夹 /city/ 中有一个文件夹,在城市文件夹中有 view.php 和 index.php 我如何在示例中的参数中指定它代码。

任何建议将不胜感激。

谢谢。

【问题讨论】:

    标签: php email yii2 swiftmailer


    【解决方案1】:
    \Yii::$app->mailer->htmlLayout = "@app/mail/layouts/html";
    
    $message = Yii::$app->mailer->compose('@app/mail/welcome');
    
    var_dump($message);
    

    【讨论】:

    • 虽然此代码可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。
    【解决方案2】:

    好的,我找到了解决方案,并为遇到同样困难的人提供了答案

    我修改了控制器中的代码,例如:

    Yii::$app->mailer->compose('@app/views/medicine-request-entry/view',['model'=>$model])
    

    但我还是没搞懂,如何使用@app/mail 中给出的布局或者以html 格式发送邮件。

    谢谢。

    【讨论】:

    • 对于使用布局,应将 'viewPath' => '@common/mail' 添加到 'components'->'mailer' 部分的配置中,并在文件夹 common/mail/layouts 中创建两个文件 html。 php 和 text.php
    • 这对我帮助很大,非常感谢@AndreyYaremenko 和 Pawan
    猜你喜欢
    • 2017-05-07
    • 1970-01-01
    • 2015-09-14
    • 2020-12-11
    • 1970-01-01
    • 2015-12-23
    • 2015-12-27
    • 2023-04-07
    • 1970-01-01
    相关资源
    最近更新 更多