Is there any way to access your parameters within a mail layout when using the Yii mailer
class? I can access $model
from the view but not the layout.
<?php
$params = array(
"model" => $model
);
$message = Yii::$app->mailer->compose([
'html' => $view.'Html',
'text' => $view,
], $params)
->setFrom("[email protected]")
->setTo($recipient)
->setSubject($subject);
?>
I know that for a standard web view you would set yii\web\View::$params
to access variables in the layout but this doesn't appear to work for the mailer.
Any ideas?
I just found out another way to set params to layout from controller :
// In your controler before send mail :
Yii::$app->mailer->view->params['title'] = $title;
// In your layout
echo $this->params['title'];
Hope this help!
I'd do something similar to how you get breadcrumbs back to the view.
//In your view file, model was passed down via compose as you have it.
//this adds model element to the View object's params.
$this->params['model'] = $model;
//In your layout
echo $this->params['model']->attribute;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With