我有一个实施了多个子模块的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");
我能做什么/解决这个问题?
答案 0 :(得分:0)
您可以使用模块名称将正确的视图目录直接设置到视图服务中。这样您就不必使用选择功能,因为phalcon会自动将它们与您的控制器相关联。
$module_name = $di->get('router')->getModuleName();
$viewsDir = __DIR__."/modules/".$module_name."/views/";
$view = new View();
$view->setViewsDir($viewsDir);