yii2:如何在邮件中呈现视图
yii2: how to render a view in mail
我可以使用 swiftmailer 扩展程序发送邮件。我还可以包含来自@app/mail 文件夹的视图文件。
现在我想知道如何为我的模型视图包含数据,例如我有一个模型 City.php 和相关视图 view.php 或 index.php(网格视图) 如何在邮件正文中包含 view.php(单个记录)中呈现的数据或 index.php 中的 table 数据。
简而言之,我想在邮件正文的视图或索引中包含 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
是视图文件夹中的文件夹。(不在@app/views 中)
但无法获取。假设我在 /mail/ 子文件夹中的视图名称是 report.php,我的视图子文件夹 /city/ 中有一个文件夹,在 city 文件夹中有 view.php 和 index.php 我如何指定它在示例代码的参数中。
任何建议将不胜感激。
谢谢。
好的,我找到了解决方案并为遇到同样困难的任何人提供了答案
我修改了控制器中的代码,如:
Yii::$app->mailer->compose('@app/views/medicine-request-entry/view',['model'=>$model])
但我还是没明白,如何使用@app/mail
中给出的布局或将邮件发送为html。
谢谢。
\Yii::$app->mailer->htmlLayout = "@app/mail/layouts/html";
$message = Yii::$app->mailer->compose('@app/mail/welcome');
var_dump($message);
我可以使用 swiftmailer 扩展程序发送邮件。我还可以包含来自@app/mail 文件夹的视图文件。
现在我想知道如何为我的模型视图包含数据,例如我有一个模型 City.php 和相关视图 view.php 或 index.php(网格视图) 如何在邮件正文中包含 view.php(单个记录)中呈现的数据或 index.php 中的 table 数据。
简而言之,我想在邮件正文的视图或索引中包含 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
是视图文件夹中的文件夹。(不在@app/views 中)
但无法获取。假设我在 /mail/ 子文件夹中的视图名称是 report.php,我的视图子文件夹 /city/ 中有一个文件夹,在 city 文件夹中有 view.php 和 index.php 我如何指定它在示例代码的参数中。
任何建议将不胜感激。
谢谢。
好的,我找到了解决方案并为遇到同样困难的任何人提供了答案
我修改了控制器中的代码,如:
Yii::$app->mailer->compose('@app/views/medicine-request-entry/view',['model'=>$model])
但我还是没明白,如何使用@app/mail
中给出的布局或将邮件发送为html。
谢谢。
\Yii::$app->mailer->htmlLayout = "@app/mail/layouts/html";
$message = Yii::$app->mailer->compose('@app/mail/welcome');
var_dump($message);