Yii2将参数传递到邮件布局

Nei*_*son 3 php swiftmailer yii2

使用Yii mailer该类时,是否可以在邮件布局中访问参数?我可以$model从视图访问,但不能从布局访问。

<?php

        $params = array(
           "model" => $model
        );

        $message = Yii::$app->mailer->compose([
            'html' => $view.'Html',
            'text' => $view,
        ], $params)
        ->setFrom("me@placeholder.com")
        ->setTo($recipient)
        ->setSubject($subject);
?>
Run Code Online (Sandbox Code Playgroud)

我知道对于标准的Web视图,您将设置yii\web\View::$params为访问布局中的变量,但这似乎不适用于邮件发件人。

有任何想法吗?

Kir*_*irk 5

我会做一些类似于您如何将面包屑返回视图的操作。

//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;
Run Code Online (Sandbox Code Playgroud)


小智 5

我刚刚发现了另一种从控制器设置参数以设置布局的方法:

// In your controler before send mail : 
Yii::$app->mailer->view->params['title'] = $title;

// In your layout
echo $this->params['title'];
Run Code Online (Sandbox Code Playgroud)

希望有帮助!