Lavavel-blade 模板

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

1.[模板继承]




    
        App Name - @yield('title')
    
    
        @section('sidebar')
            This is the master sidebar.
        @show

        
@yield('content')

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



@extends('layouts.master')

@section('title', 'Page Title')

@section('sidebar')
    @@parent

    

This is appended to the master sidebar.

@endsection @section('content')

This is my body content.

@endsection

2.[展示数据]

Route::get('greeting', function () {
    return view('welcome', ['name' => 'Samantha']);
});
//展示
Hello, {{ $name }}.
//显示函数
The current UNIX timestamp is {{ time() }}.

判断是否有值

{{ 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)
    

This is user {{ $user->id }}

@endforeach @forelse ($users as $user)
  • {{ $user->name }}
  • @empty

    No users

    @endforelse @while (true)

    I'm looping forever.

    @endwhile

    引入子视图

    @include('shared.errors')
    //可以传参 @include('view.name', ['some' => 'data'])

    迭代一个视图
    @each('view.name', $jobs, 'job')
    第一个参数是视图名字,第二个是数组,第三是数组中的一个元素
    第四个参数是如果为空的时候显示的视图
    @each('view.name', $jobs, 'job', 'view.empty')

    4.服务的注入

    @inject('metrics', 'App\Services\MetricsService')
    
    
    Monthly Revenue: {{ $metrics->monthlyRevenue() }}.

    5.[扩展 Blade]

    下面这个实例将创建一个 @datetime($var)指令,用于格式化 $var参数:

    format('m/d/Y H:i'); ?>";
            });
        }
    
        /**
         * Register bindings in the container.
         *
         * @return void
         */
        public function register()
        {
            //
        }
    }
    

    你可能感兴趣的:(Lavavel-blade 模板)