牛骨文教育服务平台(让学习变的简单)

Blade 控制语法结构

在 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 --}}