0

CakePHP シェルとしていくつかの cronjobs を実行しており、そこで特定のドキュメントを生成する必要があります。PDF に変換される HTML もあれば、HTML コンテンツを含む電子メールもあります。これらのテンプレート/ビューがあり、コントローラーを介してレンダリングできます。それらをシェルでレンダリングするにはどうすればよいですか?

現在、特定のトークンを必要な文字列に置き換えるために str_replace() を使用していますが、それは汚いので、ループや条件などのテンプレートのような機能がもっと必要です。

Smarty には Smarty->fetch() があります。CodeIgniter には $this->load->view() があります。CakePHP ではどのように行われますか?

4

2 に答える 2

2

ケーキ1.3では:

    App::import('Controller');
    $this->view = new View(new Controller(), false);
    $this->view->viewPath = 'elements';
    echo $this->view->element($name,$params);

Cake 3.x で

    $view = new View();
    echo $view->element($name,$params);
于 2016-01-26T23:16:31.973 に答える
-1

str_replace が汚いとは思いません。

Cake ビューは文字列変数にレンダリングでき、簡単に変更できます…「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;
于 2012-07-12T09:17:26.310 に答える