Mam szablon wiadomości e-mail w widoku i chcę napisać proces, który jest ConsoleApplication, który przygotowuje wiadomości e-mail do wysłania. Ponieważ jest to ConsoleApplication, nie mam dostępu do kontrolera. Czy jest to jakikolwiek sposób renderowania widoku?renderowanie widoku w aplikacji konsoli Yii
6
A
Odpowiedz
16
Oto co mogę użyć:
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);
}
Zajmuje szablonu e-mail z poglądów/email.
1
Jeśli wszystko inne zawiedzie (jak w moim przypadku):
<?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_);
}
}
?>
jest jakiś dobry sposób, aby uczynić z modelu? czy jest jakiś link do CConsoleCommand, który jest obecnie uruchamiany? – liysd
Dodaj tę metodę do polecenia konsoli. Możesz przekazać tablicę z $ this i parametrem $ do danych $. –
downvote, nie podano przykładu użycia, jaki jest bałagan, który należy wkleić do komendy – Tebe