Lavavel-blade 模板(三元运算 判断 循环等常用代码)
xuexi 2023-10-13 08:20:12 发表在:PHP 查看数:916

Blade 视图文件使用 .blade.php 文件扩展名,并且一般被存放在 resources/views目录。

1.[模板继承]

<!-- Stored in resources/views/layouts/master.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>

@section指令正像其名字所暗示的一样是用来定义一个视图片断(section)的; @yield指令是用来展示某个指定 section 所代表的内容的。

扩展一个页面布局模板

<!-- Stored in resources/views/child.blade.php -->

@extends('layouts.master')

@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

判断是否有值

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

默认情况下,Blade 的 {{ }} 表达式会自动通过 PHP 的 htmlentities 函数进行处理,以防止 XSS 攻击。如果你不希望自己的数据被转义,请使用如下语法:

Hello, {!! $name !!}.

3.控制结构

通过 @if、@elseif、@else和 @endif 指令可以创建 if 表达式。这些指令其实都有相对应的 PHP 表达式:

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

引入子视图

<div>
    @include('shared.errors')

    <form>
        <!-- Form Contents -->
    </form>
</div>
//可以传参
@include('view.name', ['some' => 'data'])
最近访问时间:2025-05-01 03:15:36
知识库:340条鸣谢:TAY  备案号:蜀ICP备2024090044号