Neil Bryson Neil Bryson - 17 days ago 5
PHP Question

Yii2 pass parameters to mail layout

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("me@placeholder.com")
->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?

Answer

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;
Comments