Blade 控制语法结构

最后更新于:2022-04-01 15:10:07

## 在 Blade 视图中打印(Echoing)数据 ~~~ Hello, {{ $name }}. The current UNIX timestamp is {{ time() }}. ~~~ ## 检查数据是否存在后再打印数据 有时候您想要打印一个变量,但您不确定这个变量是否存在,通常情况下,您会想要这样写:: ~~~ {{ isset($name) ? $name : 'Default' }} ~~~ 然而,除了写这种三元运算符语法之外,Blade 让您可以使用下面这种更简便的语法: ~~~ {{ $name or 'Default' }} ~~~ ## 使用花括号显示文字 如果您需要显示的一个字符串刚好被花括号包起来,您可以在花括号之前加上 `@ 符号`前缀来跳出 Blade 引擎的解析: ~~~ @{{ This will not be processed by Blade }} ~~~ 如果您不想数据被转义, 也可以使用如下语法: ~~~ Hello, {!! $name !!}. ~~~ > 特别注意: 在您的应用程序打印用户所提供的内容时要非常小心。请记得永远使用双重花括号来转义内容中的 HTML 实体字符串。 ## 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 ~~~ ## 加载子视图 ~~~ @include('view.name') ~~~ 您也可以通过传入数组的形式将数据传递给加载的子视图: ~~~ @include('view.name', ['some' => 'data']) ~~~ ## 重写区块 如果想要重写掉前面区块中的内容,您可以使用 overwrite 声明: ~~~ @extends('list.item.container') @section('list.item.content') <p>This is an item of type {{ $item->type }}</p> @overwrite ~~~ ## 显示语言行 ~~~ @lang('language.line') @choice('language.line', 1) ~~~ ## 注释 ~~~ {{-- This comment will not be in the rendered HTML --}} ~~~
';