在不同情况下使用include

时间:2014-02-20 11:22:55

标签: laravel laravel-4

我有一个包含各种包含的样板,一个是:

    @include('nav')

我想对我网站的CMS使用相同的样板,但使用不同的导航。

当用户使用CMS时,使样板板包含不同导航的最佳方法是什么:

    @include('nav-cms')

1 个答案:

答案 0 :(得分:0)

这更像是一个架构问题,答案是你可以通过很多方式做到这一点。但是,答案可能是Laravel特有的,所以这里是:

一种方法是将include语句更改为:

@include($navView)

然后在您的控制器中或使用视图编辑器,您应该适当地设置该变量。

或者,您可以使用以下部分来执行此操作:

// layout.blade.php
<html>
    <head></head>
    <body>
        @section('nav')
            @include('nav')
        @show

        @yield('content')
    </body>
</html>

// some-frontend-view.blade.php
@extends('layout')

@section('content')
    Content here
@stop

// some-cms-view.blade.php
@extends('layout')

@section('nav')
    @include('nav-cms')
@overwrite

@section('content')
    CMS content here
@stop

这样它就会假定前端导航,然后在CMS中为CMS导航覆盖它。或者,您可以使用@yield,而不是在布局中默认为“nav”,并在some-frontend-view.blade.php文件中将其指定为some-cms-view.blade.php文件。