2015-08-13 28 views
2

使用Yii mailer類時,是否有任何方法可以在郵件佈局中訪問您的參數?我可以從視圖訪問$model,但不能訪問佈局。Yii2將參數傳遞給郵件佈局

<?php 

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

     $message = Yii::$app->mailer->compose([ 
      'html' => $view.'Html', 
      'text' => $view, 
     ], $params) 
     ->setFrom("[email protected]") 
     ->setTo($recipient) 
     ->setSubject($subject); 
?> 

我知道,對於一個標準的Web視圖,你會設置yii\web\View::$params訪問佈局變量,但這似乎並沒有對郵件的工作。

任何想法?

回答

3

我會做類似於如何讓麪包屑回到視圖。

//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; 
+0

謝謝你。不幸的是,我需要在每個電子郵件視圖中都這樣做,但它比重複頁眉/頁腳html要好得多 –

3

我只是發現了另一種方式來從控制器設置PARAMS佈局:

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

// In your layout 
echo $this->params['title']; 

希望這有助於!