- Blade模闆
- 簡介
- 模闆繼承
- 詳細使用
Blade模闆
簡介
Blade 是 Laravel 提供的一個非常簡單、強大的模闆引擎,Blade 在視圖中不限制 PHP 原生代碼。所有的 Blade 視圖都會被編譯成原生 PHP 代碼并緩存起來直到被修改,這意味着對應用的性能而言 Blade 基本上是零開銷。Blade 視圖檔案使用 .blade.php 檔案擴充,預設存放在 resources/views 目錄下。
模闆繼承
- section 定義了一個内容的片段
- yield 用于顯示給定片段的内容
- extends 指定子頁面所繼承的布局
- parent @parent 指令在視圖渲染時将會被布局中的内容替換 ,可了解為類中調用父類方法的parent::action();
詳細使用
<!--layout.blade.php 布局-->
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>@yield('title','預設值')</title>
</head>
<style>
header,footer {
width: %;
height: px;
background-color: khaki;
}
aside {
float: left;
width: %;
margin-left: %;
height: px;
background-color: lavenderblush;
}
.clear {
display: block;
height: ;
width: %;
clear: both;
}
</style>
<body>
<header>頭部@yield('header','預設值')</header>
<aside class="left">
@section('left-aside')
左側
{{ $title }}
@show
</aside>
<aside class="right">
@section('right-aside')
右側
@show
</aside>
<div class="clear"></div>
<footer>
@section('footer')
尾部
@show
</footer>
</body>
</html>
<!--nav.blade.php 獨立出來的元件,供include指令調用-->
<nav>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>使用變量{{ $title }}</li>
</ul>
</nav>
<!--son.blade.php 模闆 繼承自layout-->
{{--繼承layout檔案--}}
@extends('layout')
{{--重寫title塊--}}
@section('title')
{{--1. 輸出變量--}}
{{ $title }}
@stop
@section('header')
header2
<h3>模闆中生成url</h3>
<ol>
<li>url 通過路由名稱生成url {{ url('/nice') }}</li>
<li>action 通過控制器及方法生成url {{ action('Member\IndexController@index') }}</li>
<li>route 通過路由别名生成url {{ route('niceas') }}</li>
</ol>
@stop
@section('left-aside')
重寫父模闆内容
@stop
@section('right-aside')
@parent
繼承父模闆内容并追加内容
{{--1. 輸出變量--}}
{{ $title }}
{{--2. 使用PHP代碼--}}
{{ time() }}
{{ var_dump($title) }}
{{--下面兩種三元表達式等價--}}
{{ isset($header) ? $header : '預設值' }}
{{ $header or '預設值' }}
{{--3. 原樣輸出--}}
@{{ $title }}
{{--4. Blade 還允許你在視圖中定義注釋,然而,不同于 HTML 注釋,Blade 注釋并不會包含到 HTML 中被傳回--}}
{{--5. 引入子視圖--}}
@include('nav')
{{--6. 流程控制--}}
<!-- if-else -->
@if(1 > 1)
1不等于0
@elseif(1 < 1)
1不等于2
@else
1等于1
@endif
<!-- 相當于if取反 -->
@unless(1!=1)
輸出
@endunless
<!-- for -->
@for($i = 1;$i<10;$i++)
{{ $i }}
@endfor
<!-- foreach -->
@foreach ($users as $user)
<p>This is user {{ $user->id }}</p>
@endforeach
@forelse ($users as $user)
<li>{{ $user->name }}</li>
@empty
<p>No users</p>
@endforelse
<!-- while -->
@while ($i>0)
<p>I'm looping forever.{{ $i }}</p>
{{ $i-- }}
@endwhile
@endsection