2017-08-07 49 views
0

我正在學習如何使用簡單的系統(主要是WP和原始PHP)很久以後編寫Laravel的代碼。對於這個我運行的最新版本和教程Laravel 5這裏以下:Laravel @section和@show忽略默認內容 - 爲什麼?

https://tutorials.kode-blog.com/laravel-blade-template

不過,我遇到了一個問題。我在擴展總綱部分,它要求你在/resources/views/page.blade.php創建一個文件,內容如下:

@extends('layouts.master') 

@section('title', 'Page Title') 

@section('sidebar') 

<p>This is appended to the master sidebar.</p> 
@endsection 

@section('content') 
    <p>This is my body content.</p> 
@endsection 

凡船長佈局,位於/resources/views/layouts/master.blade.php,包含此:

<html> 
    <head> 
     <title>@yield('title')</title> 
    </head> 
    <body> 
     @section('sidebar') 
      This is the master sidebar. 
     @show 

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

按照教程,結果逛http://localhost/larashop/public/blade當路由後應該是在電線之間的東西:

This is the master sidebar. 

This is appended to the master sidebar. 

This is my body content. 

然而,而是我越來越:

This is appended to the master sidebar. 

This is my body content. 

的代碼是,由於某種原因,忽略了代碼This is the master sidebar.部分,或者從@section('sidebar')內容替換它。我將補充說明,代碼處理正常,否則主模板中的<p></p><div></div>會出現在他們應該在的位置。這只是側邊欄的默認內容。如果我用@yield('sidebar')代替@show,但它真的很好奇,但我真的很好奇這裏發生了什麼,如果由於某種原因我做錯了什麼。

我相信可能會有一個版本的差異,因爲教程是5.0和我在5.4,但我找不到任何指向我的變化是什麼,爲什麼,我想知道這之前我繼續前進,因爲我擔心我會發現更多像這樣的問題。

我已經找到教程和我的安裝之間的區別,即/app/Http/routes.php而不是/routes/web.php,但那一個很容易找到有關信息。對於這個我找不到任何東西,所以有人能幫助我嗎?

回答

0

剛剛找到答案。我不知道,如果這是因爲Laravel版本之間的變化,或者如果教程是錯誤的。按照本教程中的問題,:

https://laravel.com/docs/5.4/blade

那是page.blade.php失蹤@parent側邊欄部分內。因此,該文件應爲:

@extends('layouts.master') 

@section('title', 'Page Title') 

@section('sidebar') 

    @parent 

    <p>This is appended to the master sidebar.</p> 

@endsection 

@section('content') 
    <p>This is my body content.</p> 
@endsection 

因此,該部分將首先包含其父節中的內容。

0

在你的page.blade.php


它應該是@yield('sidebar')不是@section('sidebar')

+0

你願意詳細說明嗎? @section('content')工作正常,我不明白爲什麼我們會使用@endsection而沒有打開部分。該教程是否錯誤? – Tizzy

+0

這可能是在教程中存在一個小錯誤,因爲我沒有看到一個人如何在沒有@endsection的情況下使用@section('content')。請訪問[link](https://laracasts.com/series/laravel-from-scratch-2017),獲取有關laravel的良好教程。還查看laravel 5.4刀片文檔[鏈接](https://laravel.com/docs/5.4/blade) –

+0

找出問題所在。它在page.blade.php上,但唯一的問題是該部分缺少「@ parent」。感謝您的鏈接壽,我發現他們的答案:D – Tizzy