Blade 模板引擎

模板继承

定义布局:

<!-- 寄存在 resources/views/layouts/app.blade.php --><html>    <head>        <title>App Name - @yield('title')</title>    </head>    <body>        @section('sidebar')            This is the master sidebar.        @show        <div class="container">            @yield('content')        </div>    </body></html>

继承布局:

<!-- 寄存在 resources/views/child.blade.php -->@extends('layouts.app')@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

数据显示

注:Blade 的 {{}} 语句曾经通过 PHP 的 htmlentities 函数解决以防止 XSS 攻打。
Hello, {{ $name }}.The current UNIX timestamp is {{ time() }}.

输入存在的数据, 两种形式都能够:

{{ isset($name) ? $name : 'Default' }}{{ $name or 'Default' }}

显示原生数据:

Hello, {!! $name !!}.

流程管制

if 语句:

@if (count($records) === 1)    I have one record!@elseif (count($records) > 1)    I have multiple records!@else    I don't have any records!@endif
@unless (Auth::check())    You are not signed in.@endunless

循环:

@for ($i = 0; $i < 10; $i++)    The current value is {{ $i }}@endfor@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 (true)    <p>I'm looping forever.</p>@endwhile

应用循环的时候还能够完结循环或跳出以后迭代:

@foreach ($users as $user)    @if ($user->type == 1)        @continue    @endif    <li>{{ $user->name }}</li>    @if ($user->number == 5)        @break    @endif@endforeach

还能够应用指令申明来引入条件:

@foreach ($users as $user)    @continue($user->type == 1)        <li>{{ $user->name }}</li>    @break($user->number == 5)@endforeach

$loop 变量

在循环的时候, 能够在循环体中应用 $loop 变量, 该变量提供了一些有用的信息, 比方以后循环索引, 以及以后循环是不是第一个或最初一个迭代:

@foreach ($users as $user)    @if ($loop->first)        This is the first iteration.    @endif    @if ($loop->last)        This is the last iteration.    @endif    <p>This is user {{ $user->id }}</p>@endforeach

如果你身处嵌套循环, 能够通过 $loop 变量的 parent 属性拜访父级循环:

@foreach ($users as $user)    @foreach ($user->posts as $post)        @if ($loop->parent->first)            This is first iteration of the parent loop.        @endif    @endforeach@endforeach

$loop 变量还提供了其余一些有用的属性:

属性形容
$loop->index以后循环迭代索引 (从0开始)
$loop->iteration以后循环迭代 (从1开始)
$loop->remaining以后循环残余的迭代
$loop->count迭代数组元素的总数量
$loop->first是否是以后循环的第一个迭代
$loop->last是否是以后循环的最初一个迭代
$loop->depth以后循环的嵌套层级
$loop->parent嵌套循环中的父级循环变量

模板正文

{{-- This comment will not be present in the rendered HTML --}}

嵌入 PHP 代码

@php    //@endphp


文章来源于自己博客,公布于 2018-06-13,原文链接:https://imlht.com/archives/156/