呈现具有多个视图目录的视图

时间:2016-11-03 13:49:08

标签: php phalcon mpdf

我有一个实施了多个子模块的phalcon应用程序。文件夹结构如下所示:

root
    app
        controllers
        models
        views
    modules
        restaurants
            controllers
            models
            views
        tables
            controllers
            models
            views
        chairs
            controllers
            models
            views
    public

views目录指向modules文件夹。这样,当我必须选择一个视图时,我可以这样做:$this->view->pick('tables/views/index')

现在,我的问题是,当我想渲染一个视图(即将纯html作为字符串)时,我似乎无法做到这一点。

$this->view->disable();

$this->view->pick('restaurants/views/pdf');

$html = $this->view->getContent();
$html = utf8_encode($html);

$pdf = new mPDF();
$pdf->WriteHTML($html);
$pdf->SetTitle('This is a test');
$pdf->Output('test.pdf', "I");

我能做什么/解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可以使用模块名称将正确的视图目录直接设置到视图服务中。这样您就不必使用选择功能,因为phalcon会自动将它们与您的控制器相关联。

        $module_name = $di->get('router')->getModuleName();

        $viewsDir = __DIR__."/modules/".$module_name."/views/";

        $view = new View();

        $view->setViewsDir($viewsDir);