iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 13
0

當然blade絕對不單單只有這點能耐,接下來會進入到Blade頁面佈局的部分,老實說這方面我也是剛接觸,所以只能用短時間理解的內容來說明,如果有錯的話還請見諒。

另外勸世一下~建議有小孩之前真的能玩就玩、能睡就睡、能研究新東西就研究新東西...最近每天睡眠不到5小時,真的腦袋思考好頓阿~

一個網頁往往會有許多部份是共用或者重複的,常見共用的有header、側邊欄、footer…這些,這時候就可以靠blade的繼承來減少重複造輪的機會。再次強調所有的Blade檔案命名都要以 .blade.php 作為副檔名。
建立一個檔案master.blade.php,放置於views的layouts資料夾中(我是自己新增的)

<html>
    <head>
        <title>應用程式名稱 - @yield('title')</title>
    </head>
    <body>
        @section('sidebar')
            這是主要的側邊欄。
        @show

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

由上面的程式碼,可以看到幾個陌生的語法
@yield
@section
@show

還需要另外一段程式碼,才能一解整個面貌
建立一個檔案child.blade.php,放置於views下

@extends('layouts.master')

@section('title', '頁面標題')

@section('sidebar')
    @parent

    <p>這邊會附加在主要的側邊欄。</p>
@endsection

@section('content')
    <p>這是我的主要內容。</p>
@endsection

從這個範例可以看出,child.blade.php繼承了master.blade.php的結構,並且還能自己做些變化,實際上的操作可以玩出更多火花!
@extends('layouts.master')
意思是指繼承第一段程式碼(樣板)

@section('title', '頁面標題')
將titile賦予資料,並傳送到第一段

@show
這個部分,我目前的理解是父樣板使用@show

@endsection
跟@show很像,但是是在子樣板使用

原先php的isset,在blade可以改用
{{ $name or 'Default' }}

意思是說 如果$name不存在,就顯示Default

雖然有點簡短,但從上面可以感覺出我們可以藉由blade來做出很多畫面的模板或者基礎架構,然後在需要的時候呼叫繼承就可以使用了


上一篇
DAY12: Blade前傳
下一篇
DAY14: blade 該結束了吧!
系列文
從0開始-30天摸索laravel31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言