我正在使用laravel布局,我有这样的设置;
//控制器
public function action_index()
{
$this->layout->nest('submodule', 'partials.stuff');
$this->layout->nest('content', 'home.index');
}
// layout
<!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');
这不起作用,因为它将视图绑定到布局。而我需要将它绑定到“内容”模板中定义的部分。
有什么想法吗?
答案 0 :(得分:5)
以下是我修复Laravel嵌套视图问题的方法:
使用此解决方案,您也可以将数据传递到主视图
<强>解决方案:强>
你需要在你的home / index.blade.php视图中渲染partials.stuff,然后在你的template.php中创建一个'home / index.blade.php'的'content'视图
使用<?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>
希望这可以帮助你解决我的问题:)
答案 1 :(得分: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>