6
我在视图中有一个电子邮件模板,我想编写一个ConsoleApplication过程来准备要发送的电子邮件。因为它是ConsoleApplication我没有访问控制器。是否有任何方法来呈现视图?在yii控制台应用程序中渲染视图
我在视图中有一个电子邮件模板,我想编写一个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);
}
它需要电子邮件模板从的意见/电子邮件。
如果一切都失败(在我的情况):
<?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_);
}
}
?>
有从模型来呈现什么好办法?或者是否有任何与CConsoleCommand目前启动的链接? – liysd 2010-11-20 19:22:14
将此方法添加到您的控制台命令。您可以将数组$ this和您的模型传递给$ data参数。 – 2010-11-20 19:41:06
downvote,没有提供使用示例,它只是粘贴到命令中有什么混乱 – Tebe 2016-09-14 12:35:00