Laravel 5 yield&部分

时间:2015-03-19 06:45:30

标签: laravel view laravel-5

我有以下结构:

- master.blade {

@yield('menu') // here I load the one and only menu I have

@yield('content') // here I load different pages

}

- menu.blade {
@extends('master')

@section('menu')
main menu
@stop
}

- other pages using the same format {
@extends('master')

@section('content')
here is the content
@stop
}

由于某种原因,未加载菜单。有什么想法吗?我尝试加载菜单然后页面。这很简单,但由于某种原因,我不明白为什么它不起作用。

2 个答案:

答案 0 :(得分:2)

  1. @include('menu')布局中使用@yield('menu')代替master.blade

  2. @extends

  3. 删除@section('menu')@stopmenu.blade

    完成这些更改后,您的代码应如下所示:

    <强> master.blade

    @include('menu')
    
    @yield('content')
    

    <强> menu.blade

    main menu
    

    其他网页

    @extends('master')
    
    @section('content')
        here is the content
    @stop
    

    详细了解模板:http://laravel.com/docs/5.0/templates

    不过,您可以使用@endsection代替@stop,它对我来说更具可读性。

答案 1 :(得分:1)

流程应该是这样的:

- master.blade {

@include('menu') // here I load the one and only menu I have

@yield('content') // here I load different pages

}

- menu.blade {

   Markup for the main menu

}

- other pages using the same format {
@extends('master')

@section('content')
   here is the content
@stop
}

创建简单的菜单文件并将其包含在主模板中,yield用于动态内容。