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

Paw*_*wan 4 php email swiftmailer yii2

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

现在我想知道如何为我的模型视图包含数据,例如说我有一个Model City.php和相关视图view.php或index.php(grid-view)我如何包含在视图中呈现的数据.邮件正文中的index.php中的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])
Run Code Online (Sandbox Code Playgroud)

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

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

任何建议将不胜感激.

谢谢.

Paw*_*wan 8

好的,我找到了解决方案,并为具有相同难度的任何人提供答案

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

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

但我仍然没有得到,如何使用布局@app/mail或发送邮件作为HTML.

谢谢.

  • 对于使用布局,应将'viewPath'=>'@ common/mail'添加到'components' - >'mailer'部分的配置中,并在文件夹common/mail/layouts中创建两个文件html.php和text.php (4认同)