如何从刀片模板中的部分获取内容

时间:2013-08-14 12:05:34

标签: laravel laravel-4 blade

我已经将培训工作簿的每个页面/幻灯片编写了一个培训应用程序,作为一个单独的刀片模板文件,名为“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;
}

1 个答案:

答案 0 :(得分:3)

而不是正常返回视图

return View::make('page');

你可以instead store the view in a string

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

那么你可以像这样做你的代码(没有经过测试 - 但你明白了):

$pages = array(...); // content of the directory
foreach ($pages as $page)
{
    $renderedPage[] = view::make($page);
}