我正在运行几个cronjobs作为CakePHP shell,我需要在那里生成某些文档。其中一些是将转换为PDF的HTML,其中一些是带有HTML内容的电子邮件。我有这些模板/视图,我可以通过Controller渲染它们。如何在Shell中呈现它们?
目前我正在使用str_replace()用我需要的字符串替换某些令牌,但这很脏,我需要更多类似模板的功能,如循环和条件。
在Smarty中有Smarty-> fetch()。在CodeIgniter中有$ this-> load-> view()。它是如何在CakePHP中完成的?
答案 0 :(得分:2)
蛋糕1.3:
App::import('Controller');
$this->view = new View(new Controller(), false);
$this->view->viewPath = 'elements';
echo $this->view->element($name,$params);
在蛋糕3.x
$view = new View();
echo $view->element($name,$params);
答案 1 :(得分:-1)
我没有看到str_replace是脏的。
可以使用“requestAction()”
将蛋糕视图渲染成字符串变量function {
requestAction("/controller/action/input1/input2",array("return"));
}
来源:帖子#3和病房:http://cakebaker.wordpress.com/2005/12/31/cakephp-and-smartyies/
$posts = $this->requestAction(‘posts/index’);
foreach($posts as $post):
echo $post['Post']['title'];
endforeach;