如何在CakePHP Shell中呈现视图/模板?

时间:2012-07-12 09:11:25

标签: php cakephp cron-task

我正在运行几个cronjobs作为CakePHP shell,我需要在那里生成某些文档。其中一些是将转换为PDF的HTML,其中一些是带有HTML内容的电子邮件。我有这些模板/视图,我可以通过Controller渲染它们。如何在Shell中呈现它们?

目前我正在使用str_replace()用我需要的字符串替换某些令牌,但这很脏,我需要更多类似模板的功能,如循环和条件。

在Smarty中有Smarty-> fetch()。在CodeIgniter中有$ this-> load-> view()。它是如何在CakePHP中完成的?

2 个答案:

答案 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;