2016-03-07 5 views
2

У меня есть master_page.blade с глобальным содержанием для моей HTML:Наследование с Laravel 5

<!DOCTYPE html> 
<html lang="es"> 
<head> 
    @include('layout.head') 
</head> 
<body> 
    @include('layout.header') 


    @yield('master_content') 

    @section('footer') 
     @include('layout.footer') 
    @show 

    @include('layout.scripts') 

    @yield('custom_scripts') 

</body> 
</html> 

После, у меня есть макет в Bootstrap с 2-6 колоннами, это лезвие унаследуют от master_blade, его зовут 2_10_columns.blade:

@extends('layout.master_page') 

@section('master_content') 
<div class="container"> 
    <div class="main-content"> 
     <div class="col-sm-2"> 
      @section('content1') 
      @show 
     </div> 

     <div class="col-sm-10">  
      @section('content2') 
      @show 

     </div> 
    </div> 
</div> 
@stop 

хорошо, это выглядит хорошо, но, наконец, мне нужно заполнить 2_10_columns.blade с некоторым содержанием, например, я попытался это с ми contact.blade.php:

@extends('layout.2_10_columns') 

@section('content1') 
    <p>Column 2 left content of my section...</p> 
@stop 

@section('content2') 
    <p>Column 10 right content of my section ...</p> 
    ...some forms here 
@stop 

Определенно это не работает ...

Как я мог это сделать с Laravel? Посмотрите на этот инфографики: enter image description here

+0

Из этих трех видов, какой из них вы пытаетесь вернуть с контроллера? –

+1

Не имеет ли '2_10_columns.blade'' @yield ('content1') 'вместо' @section ('content1') ', поскольку вы расширяете этот шаблон клипа? – camelCase

+0

Как насчет создания 2 мастер-страниц один с контейнером и один с col2 + col10? –

ответ

1

его работы, как это (упрощенный, например):

мастер-макет:

<html> 
<body> 
<div class="container"> 
    @yield('master_content') 
</div> 
</body> 
</html> 

2 смещ_по_столбцам макета:

@extends('layouts.master') 

@section('master_content') 
<div class="co-l2"> 
    <p>index</p> 
    @yield('sidebar') 
</div> 
<div class="col-10"> 
    @yield('content') 
</div> 
@endsection 

контакт вид:

@extends('layouts.2cols') 

@section('sidebar') 
    <p>delete</p> 
@endsection 

@section('content') 
    <h1> person name </h1> 
    <p>about the person</p> 
@endsection