當然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來做出很多畫面的模板或者基礎架構,然後在需要的時候呼叫繼承就可以使用了