Phalcon PhP-如何禁用操作的主布局

Phalcon PhP-如何禁用操作的主布局,php,phalcon,Php,Phalcon,我正在我的一个phalcon控制器中创建一个操作,用于生成页面的打印版本。这是我的print.volt布局: <!DOCTYPE html> <html lang="en"> <head> <title>Print</title> </head> <body> <!-- Begin page content --> <div class="container"> {% bl

我正在我的一个phalcon控制器中创建一个操作,用于生成页面的打印版本。这是我的print.volt布局:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Print</title>
</head>
<body>
<!-- Begin page content -->
<div class="container">
    {% block content %}{% endblock %}
</div>
</body>
</html>
我的看法是:

{% extends "layouts/print.volt" %}
{% block content %}
    HERE
    <script type="text/javascript">
        window.print();
    </script>
{% endblock %}
它正在工作,但我的问题是生成的内容被插入到另一个具有{{content}标记的布局中。最后,你会看到一个包含所有网站菜单、my print.volt和my view的页面。我想知道如何在没有主布局的情况下,仅将视图插入到print.volt中。如何禁用此行为


谢谢你的帮助

我想到了两个选择

1使用简单视图,它可以在不使用布局的情况下渲染模板:

$view = new \Phalcon\Mvc\View\Simple();
$view->setViewsDir('PATH_TO_YOUR_VIEWS');
$html = $view->render('template-name', $params);
在生成用于发送电子邮件的HTML时,此选项也非常方便

2禁用当前控制器::方法的布局

$this->view->setLayout('');
3更新:推荐2的替代方案

$this->view->setRenderLevel(\Phalcon\Mvc\View::LEVEL_ACTION_VIEW);

我想到了两个选择

1使用简单视图,它可以在不使用布局的情况下渲染模板:

$view = new \Phalcon\Mvc\View\Simple();
$view->setViewsDir('PATH_TO_YOUR_VIEWS');
$html = $view->render('template-name', $params);
在生成用于发送电子邮件的HTML时,此选项也非常方便

2禁用当前控制器::方法的布局

$this->view->setLayout('');
3更新:推荐2的替代方案

$this->view->setRenderLevel(\Phalcon\Mvc\View::LEVEL_ACTION_VIEW);

$this->view->setLayout;对我有用,谢谢!我将投票选出正确的答案<我只需要等待10分钟。难道$this->view->setRenderLevelView::LEVEL\u ACTION\u view;是更好的解决方案吗?Andre,也许您在查看之前错过了名称空间?选中上面的选项3@Timothy说得很好。@Timothy是的,它的名称空间可以工作,它也可以工作$This->view->setLayout'print.volt';谢谢大家$此->视图->设置布局;对我有用,谢谢!我将投票选出正确的答案<我只需要等待10分钟。难道$this->view->setRenderLevelView::LEVEL\u ACTION\u view;是更好的解决方案吗?Andre,也许您在查看之前错过了名称空间?选中上面的选项3@Timothy说得很好。@Timothy是的,它的名称空间可以工作,它也可以工作$This->view->setLayout'print.volt';谢谢大家!