我一直在使用瘦框架,我发现了一个问题。我正在使用mpdf库从我传递给它的html内容中生成pdf文件。我也使用Twig模板引擎(我认为)显而易见的原因。我的问题是,在控制器工作时,我无法访问由Slim Twig View渲染的主体,因为数据仍然在输出缓冲区中。我已经通过创建中间件类拦截具有特定路由的请求并从其身体生成pdf文件来制定解决方法,但我不认为这是应该完成的方式。我也试图不要在控制器中弄乱ob_get_contents,因为这就像对抗框架一样。
所以这是我的问题:有没有更好的方法来做我做的事情?
答案 0 :(得分:0)
Twig的核心库包含一个名为Twig_Environment的类,用于渲染视图。这个类有这些方法:
$twig->display('view.html.twig', $variables);
这将立即输出生成的内容,这不是您想要的PDF。你想要这个方法:
$content = $twig->render('view.html.twig', $variables);
此方法将返回生成的HTML并且不会回显它。然后,您可以将$ content传递给PDF库,将其转换为PDF格式。
我不知道你正在使用的框架,你需要找到一种方法来访问Twig_Environment类的实例。