2010-11-20 2 views
6

보기에 전자 메일 서식 파일이 있는데 보내려는 전자 메일을 준비하는 ConsoleApplication 인 프로세스를 작성하고 싶습니다. 그것이 ConsoleApplication이되었습니다. 컨트롤러에 액세스 할 수 없습니다. 보기를 렌더링하는 방법이 있습니까?yii 콘솔 응용 프로그램에서보기 렌더링

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

그것은 보기/이메일에서 이메일 템플릿을 취 여기

답변

16

은 내가 사용하는 것입니다.

+0

모델 렌더링하는 좋은 방법이? 또는 현재 CConsoleCommand에 대한 링크가 있습니까? – liysd

+0

이 메소드를 콘솔 명령에 추가하십시오. $ this와 배열을 $ data 매개 변수에 전달할 수 있습니다. –

+0

downvote, 사용 예제가 없습니다, 그냥 명령에 붙여 넣기 만하면됩니다. – Tebe

1

다른 모든 (내 경우처럼) 실패하는 경우 :

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

?> 
관련 문제