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 ドキュメントにコンパイルしたいと考えています。これは、各ページのhtmlを手動で渡すと驚くほどうまく機能するdompdfを介して行われます。ただし@section('pageContent')、各ページのセクションを 1 つの大きなセクションに凝縮し、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 に答える