2016-11-06 50 views
2

我想将视图呈现给变量而不直接发送给浏览器。我曾经用cakephp2做。*。但是,我无法弄清楚如何在CakePHP3中做到这一点。你能告诉我该怎么做吗?CakePHP3将视图呈现给变量

+1

它的工作方式相同,所以我认为你要么没有尝试,或者你已经做到了在2.x的错误的方式? – ndm

+0

@ndm,如果你能告诉我如何去做,很感激。 – Johna

+0

您可以在您的描述中添加现有的CakePHP 2.x代码,那么它会更有帮助 – tarikul05

回答

4

ViewBuilder在CakePHP 3.1中引入并处理视图的呈现。当我想要渲染变量时,我总是看看发送邮件的工作原理。

从控制器:

function index() { 
    // you can have view variables. 
    $data = 'A view variable'; 

    // create a builder (hint: new ViewBuilder() constructor works too) 
    $builder = $this->viewBuilder(); 

    // configure as needed 
    $builder->layout('default'); 
    $builder->template('index'); 
    $builder->helpers(['Html']); 

    // create a view instance 
    $view = $builder->build(compact('data')); 

    // render to a variable 
    $output = $view->render(); 
}