Pregunta

Tengo una plantilla de correo electrónico en una vista y yo quiero escribir un proceso que es ConsoleApplication que prepara a los mensajes de correo electrónico que se enviará. Lástima pues es ConsoleApplication no tengo acceso al controlador. No es de manera de hacer que un punto de vista?

¿Fue útil?

Solución

Esto es lo que yo uso:

private function render($template, array $data = array()){
    $path = Yii::getPathOfAlias('application.views.email').'/'.$template.'.php';
    if(!file_exists($path)) throw new Exception('Template '.$path.' does not exist.');
    return $this->renderFile($path, $data, true);
}

Se necesita la plantilla de correo electrónico vistas / correo electrónico .

Otros consejos

Si todo lo demás falla (como en mi caso):

<?php


    /**
    * Renders a view file & returns result.
    * @param string $_viewFile_ view file path
    * @param array $_data_ optional data to be extracted as local view variables
    * @param boolean $_return_ whether to return the rendering result instead of displaying it
    * @return mixed the rendering result if required. Null otherwise.
         */
public function myRenderPartial($_viewFile_,$_data_=null,$_return_=true) {

    if(is_array($_data_))
        extract($_data_,EXTR_PREFIX_SAME,'data');
    else
        $data=$_data_;

    if($_return_)
    {
        ob_start();
        ob_implicit_flush(false);
        require(YiiBase::getPathOfAlias("application.views").$_viewFile_.'.php');
        return ob_get_clean();
    }
    else
    {
        require($_viewFile_);
    }
}   

?>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top