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

我的问题是如何在“内容”部分插入部分模板?我还需要将变量传递给第二个模板“子模块”。

$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>

第二次渲染你的视图——没有任何嵌套的“子模块”调用

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 回答