2016-11-06 47 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(); 
}