представление рендера в консольном приложении yii - PullRequest
6 голосов
/ 20 ноября 2010

У меня есть шаблон электронной почты в представлении, и я хочу написать процесс, который является ConsoleApplication, который готовит электронные письма для отправки. Потому что это ConsoleApplication, у меня нет доступа к контроллеру. Есть ли способ визуализации представления?

Ответы [ 2 ]

17 голосов
/ 20 ноября 2010

Вот что я использую:

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);
}

Требуется шаблон электронной почты из просмотров / электронная почта .

1 голос
/ 29 октября 2013

Если ничего не помогает (как в моем случае):

<?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_);
    }
}   

?>
...