Rendu de la vue dans l'application de la console yu
Question
J'ai un modèle de courrier électronique dans une vue et je veux écrire un processus qui est ConsoleApplication qui prépare des courriels à être envoyés. Becouse il est ConsoleApplication Je n'ai pas accès au contrôleur. Est-il un moyen de rendre une vue?
La solution
Voici ce que j'utilise:
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);
}
Il faut modèle de courrier électronique de vues / email .
Autres conseils
Si tout le reste échoue (comme dans mon cas):
<?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_);
}
}
?>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow