yii2:如何在邮件中呈现视图

时间:2015-01-10 15:35:16

标签: php email yii2 swiftmailer

我可以使用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,我的视图中有一个文件夹subfoler / city /和city文件夹中有view.php和index.php我如何在示例中的参数中指定它代码。

任何建议都将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:8)

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

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

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

但我仍然没有得到,如何使用@app/mail中给出的布局或将邮件作为html发送。

感谢。

答案 1 :(得分:0)

\Yii::$app->mailer->htmlLayout = "@app/mail/layouts/html";

$message = Yii::$app->mailer->compose('@app/mail/welcome');

var_dump($message);