2

我编写了一个培训应用程序,培训工作簿的每一页/幻灯片作为单独的刀片模板文件命名为“page1.blade.php”、“page2.blade.php”等。这些文件中的每一个都具有以下内容:

@extends('en/frontend/layouts/training_modulename')

{{-- Page title --}}
@section('title')
    Page Title
@parent
@stop

{{-- Page content --}}
@section('pageContent')
    <div class="pageContentContainer">
        <h2>Page Title</h2>
        ...
    </div>
@stop

在浏览器中逐页查看时,这非常有效。但是,我也希望自动将所有页面编译成 PDF 文档。这是通过 dompdf 完成的,当我手动将每个页面 html 传递给它时,它的效果非常好。但是,我希望将@section('pageContent')每一页的部分压缩为一个大部分,该部分扩展了不同的布局以传递给 dompdf。

鉴于上述上下文,我的问题是: Laravel 的刀片解析器中是否有一种方法可以让我将刀片文件传递给它并从特定部分获取渲染的 html?下面的伪代码演示了我想要做的事情。

$pages = array(...); // content of the directory
foreach ($pages as $page)
{
    $renderedPage = Blade::render($page);
    $title = $renderedPage->title;
    $pageContent = $renderedPage->pageContent;
}
4

1 回答 1

3

而不是正常返回视图

return View::make('page');

您可以改为将视图存储在字符串中

$view = View::make('page');

那么你可以做你的代码是这样的(未经测试 - 但你明白了):

$pages = array(...); // content of the directory
foreach ($pages as $page)
{
    $renderedPage[] = view::make($page);
}
于 2013-08-14T14:04:48.007 回答