2010-11-20 12 views
6

में दृश्य प्रस्तुत करें मेरे पास एक दृश्य में एक ईमेल टेम्पलेट है और मैं एक प्रक्रिया लिखना चाहता हूं जो कंसोल अनुप्रयोग है जो ईमेल भेजने के लिए तैयार करता है। बनना यह कंसोल एप्लीकेशन है मेरे पास नियंत्रक तक कोई पहुंच नहीं है। क्या यह एक दृश्य प्रस्तुत करने का कोई तरीका है?वाईआई कंसोल एप्लिकेशन

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

इस विधि को अपने कंसोल कमांड में जोड़ें। आप $ और उसके मॉडल को $ डेटा पैरामीटर के साथ एक सरणी पास कर सकते हैं। –

+0

डाउनवोट, कोई उपयोग उदाहरण प्रदान नहीं किया गया है, कंसोल से लेआउट फ़ाइल का उपयोग करने के लिए किसी भी तरह से कमांड – 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_); 
    } 
} 

?> 
संबंधित मुद्दे