4

私はlaravelレイアウトを使用しており、次のようなセットアップがあります。

//コントローラ

public function action_index()
{
    $this->layout->nest('submodule', 'partials.stuff');
    $this->layout->nest('content', 'home.index');
}

// レイアウト

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    @yield('content');
</body>
</html>

// これはコンテンツ テンプレートです

@section('content')
    <div>
        @yield('submodule')
    </div>
@endsection

私の質問は、「コンテンツ」セクション内に部分的なテンプレートを挿入するにはどうすればよいですか? この 2 番目のテンプレート「サブモジュール」にも変数を渡す必要があります。

$this->layout->nest('partial', 'partials.partial');

ビューをレイアウトにバインドするため、これは機能しません。「コンテンツ」テンプレートで定義されているセクションにバインドする必要があります。

何か案は?

4

2 に答える 2

5

Laravelのネストされたビューの問題を修正した方法は次のとおりです。

このソリューションを使用して、メインのビューにもデータを渡します

解決:

home/index.blade.php ビュー内で partials.stuff をレンダリングしてから、template.php で「home/index.blade.php」の「コンテンツ」をレンダリングするビューを作成する必要があります。

使用する<?php render('partials.stuff') ?>

まずあなたのhome/index.blade.php:

<div>
      <?php render('partials.stuff') ?>
</div>

2番目にビューをレンダリングします-ネストされた「サブモジュール」呼び出しなし

public function action_index()
{
    $this->layout->nest('content', View::make('home.index'),$data) ;
}

最後に、テンプレートは同じままです-レンダリング{{ $content }}

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    {{ $content }}
</body>
</html>

これが私の問題を解決したので、これがあなたに役立つことを願っています:)

于 2013-05-16T07:31:47.760 に答える
0

通常は次のようにします。

public function action_index()
{
    $this->layout->nest('content', View::make('home.index')->nest('submodule', 'partials.stuff'));
}

そしてあなたのテンプレートで:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    {{ $content }}
</body>
</html>

とあなたのhome/index.blade.php

<div>
     {{ $submodule }}
</div>
于 2013-02-28T00:55:59.583 に答える