Mic*_*ael 6 laravel blade laravel-4
我搜索了SO,并在Laravel文档中挖了但是我不确定我是否完全理解我想做什么.
我正在使用Laravel 4.我想知道如何在其他视图中嵌套视图.
例如,我有一个基本布局..让我们调用它 layout.blade.php
<html>
<head>
<title>{{ $title }}</title>
</head>
<body>
@yield('nav')
@yield('content')
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
接下来我有一个页面的刀片home
:
@extends('layout')
@section('nav')
<p>NAVIGATION</P>
@end
@section('content')
<p>HELLO WORLD!</P>
@end
Run Code Online (Sandbox Code Playgroud)
我有几个不同的导航布局,一个用于管理员,另一个用于超级用户,另一个用于普通用户.
有没有办法在里面添加另一个刀片视图section('nav')
?
@section('nav')
// do something magical here?
@end
Run Code Online (Sandbox Code Playgroud)
对于每个刀片布局而言,当重复使用多个片段时,我需要重复导航代码是没有意义的.
Ant*_*iro 11
你可以这样做
@section('nav')
@include('another')
@include('magical')
@include('snippet')
@end
Run Code Online (Sandbox Code Playgroud)
另一种解决方案,如果您希望动态加载不同的子视图,可以使用View
Class 进行嵌套.例如,你可以在路由/控制器中拥有以下内容:
return View::make('home')->nest('subnav','home/nav', array('some' => 'data');
Run Code Online (Sandbox Code Playgroud)
然后在你的home.blade.php
,你可以做到这一点:
@extends('layout')
@section('nav')
<p>NAVIGATION</p>
{{ $subnav }}
@end
@section('content')
<p>HELLO WORLD!</p>
@end
Run Code Online (Sandbox Code Playgroud)
这可以用include和变量来完成(@include($viewname, array('some' => 'data')
)但是我会说它更干净,因为它从视图中删除了逻辑,特别是如果你的嵌套视图并不总是相同的刀片文件.
归档时间: |
|
查看次数: |
10868 次 |
最近记录: |