0

これがばかげた質問である場合は申し訳ありませんが、イベントを監視し、それらのイベントで電子メールを生成するフィルタークラスを作成しています。私の要件の1つは、データのテーブルを電子メールに追加することです。2つの関連する質問。

$this->widget('zii::widgets.grid.CGridView, array());1-フィルター内の関数から呼び出すことは可能ですか。

2-ウィジェットの結果を変数に送信して、電子メールの本文に含めることはできますか?

これが不可能な場合は、電子メールに添付できるExcelファイルへのエクスポートの作業を開始します。

4

1 に答える 1

2

あなたはこれを間違えました。どこにいても、レンダリングするにはコントローラーが必要です。

したがって、renderPartialを呼び出すことができるようにするには、コントローラーを作成してインスタンス化する必要があります。したがって、私が行うことは、すべての外観をEmailControllerに入れ、単に初期化して、最後のパラメーターであるrenderPartialを使用して出力を返すことです。

PHPMailerを使用したところ、行は次のようになります。

$mail->Body = CController::renderInternal(Yii::app()->basePath . '/views/email/email_report.php', array('arrData' => $arrData), true);

イベント'にはEmailControllerがありません。(上記のコードはコンソールアプリから呼び出されます)。

于 2012-06-19T17:16:44.187 に答える