Laravel多重嵌套视图(Laravel multiple nested views)

2019-08-17 05:20发布

我使用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');

这不工作,因为它结合了视图布局。 而我需要将其绑定到这是在“内容”模板中定义的部分。

有任何想法吗?

Answer 1:

这里是我固定Laravel嵌套视图的问题:

使用此解决方案,您将数据传递到您的主视图,以及

解:

你需要渲染partials.stuff您的家庭/ index.blade.php视图中,然后使视图呈现在你的template.php“家/ 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>

希望这可以帮助你,因为它解决了我的问题:)



Answer 2:

这里就是你通常会做的:

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>


文章来源: Laravel multiple nested views