0

我一直在使用超薄框架,但发现了一个问题。我正在使用 mpdf 库从我传递给它的 html 内容中生成 pdf 文件。出于(我认为)明显的原因,我也在使用 Twig 模板引擎。我的问题是,在控制器工作时,我无法访问 Slim Twig View 呈现的主体,因为数据仍在输出缓冲区中。我已经通过创建中间件类来拦截具有特定路由的请求并从它的主体生成 pdf 文件来解决此问题,但我认为这不是它应该完成的方式。我还试图不弄乱控制器中的 ob_get_contents ,因为这就像针对框架工作一样。

所以这是我的问题:有没有更好的方法来做我所做的事情?

4

1 回答 1

0

Twig 的核心库包含一个名为 Twig_Environment 的类,用于渲染视图。这个类有这些方法:

$twig->display('view.html.twig', $variables);

这将立即输出生成的内容,这不是您想要的 PDF 内容。你想要这个方法:

$content = $twig->render('view.html.twig', $variables);

此方法将返回生成的 HTML 并且不会回显它。然后,您可以将 $content 传递给您的 PDF 库以将其转换为 PDF。

我不知道您使用的框架,您需要找到一种方法来访问 Twig_Environment 类的实例。

于 2013-07-22T19:38:01.677 回答