Blade模板速查代码片段

汪鸿波
2023-12-01

Blade模板速查代码片段

// 输出内容,被转义过的
{{ $var }}
// 输出未转义内容
{!! $var !!}
{{-- Blade 注释,不会被输出到页面中 --}}
// 三元表达式的简写,以下相当于「isset($name) ? $name : 'Default'」
{{ $name ?? 'Default' }}
// 等同 echo json_encode($array);
@json($array);
// 禁用 HTML 实体双重编码
Blade::withoutDoubleEncoding();
// 书写 PHP 代码
@php 
@endphp
@csrf // CSRF 域
@method('PUT') // HTML 表单伪造方法 _method
// 服务容器注入,后调用 {{ $metrics->monthlyRevenue() }}
@inject('metrics', 'App\Services\MetricsService')
包含和继承
// 扩展布局模板
@extends('layout.name')
// 区块占位
@yield('name')
// 第一种、直接填入扩展内容
@section('title',  'Page Title')
// 第二种、实现命名为 name 的区块(yield 占位的地方)
@section('sidebar')
    // 继承父模板内容
    @parent
@endsection
// 可继承内容区块
@section('sidebar')
@show
// 继承父模板内容(@show 的区块内容)
@parent
// 包含子视图
@include('view.name')
// 包含子视图,并传参
@include('view.name', ['key' => 'value']);
@includeIf('view.name',  ['some'  =>  'data'])
@includeWhen($boolean,  'view.name',  ['some'  =>  'data'])
// 包含给定视图数组中第一个存在的视图
@includeFirst(['custom.admin',  'admin'],  ['some'  =>  'data'])
// 加载本地化语句
@lang('messages.name')
@choice('messages.name', 1);
// 检查片断是否存在
@hasSection('navigation')
        @yield('navigation')
@endif
// 迭代 jobs 数组并包含
@each('view.name',  $jobs,  'job')
@each('view.name',  $jobs,  'job',  'view.empty')
// 堆栈
@stack('scripts')
@push('scripts')
    <script src="/example.js"></script>
@endpush
// 栈顶插入
@prepend('scripts')
@endprepend
// 组件
@component('alert', ['foo' => 'bar'])
    @slot('title')
    @endslot
@endcomponent
// 注册别名 @alert(['type' => 'danger'])...@endalert
Blade::component('components.alert',  'alert');
条件语句
@if (count($records) === 1)
@elseif  (count($records) > 1)
@else
@endif
// 登录情况下
@unless (Auth::check())
@endunless
// $records 被定义且不是  null...
@isset($records)
@endisset
// $records 为空...
@empty($records)
@endempty
// 此用户身份已验证...
@auth // 或 @auth('admin')
@endauth
// 此用户身份未验证...
@guest // 或 @guest('admin')
@endguest
@switch($i)
    @case(1)
        @break
    @default
        // 默认
@endswitch
循环
// for 循环
@for ($i = 0; $i < 10; $i++)
@endfor
// foreach 迭代
@foreach ($users as $user)
@endforeach
// 迭代如果为空的话
@forelse ($users as $user)
@empty
@endforelse
// while 循环
@while (true)
@endwhile
// 终结循环
@continue
@continue($user->type  ==  1) // 带条件
// 跳过本次迭代
@break
@break($user->number  ==  5) // 带条件
// 循环变量
$loop->index        // 当前迭代的索引(从 0 开始计数)。
$loop->iteration    // 当前循环迭代 (从 1 开始计算)。
$loop->remaining    // 循环中剩余迭代的数量。
$loop->count        // 被迭代的数组元素的总数。
$loop->first        // 是否为循环的第一次迭代。
$loop->last         // 是否为循环的最后一次迭代。
$loop->depth        // 当前迭代的嵌套深度级数。
$loop->parent       // 嵌套循环中,父循环的循环变量
JavaScript 代码
// JS 框架,保留双大括号,以下会编译为 {{ name }}
@{{ name }}
// 大段 JavaScript 变量,verbatim 里模板引擎将不解析
@verbatim
        Hello, {{ javascriptVariableName }}.
@endverbatim
 类似资料: