2017-12-25-Blade模板引擎常用语法

layouttitledateauthordescin_head
post
Blade 模板引擎常用语法
2017-12-25 09:00:02 +0800
南丞
Blade是Laravel提供的一个既简单又强大的模板引擎,Blade允许在视图中使用原生php代码,所有Blade视图页面都将被编译成原生php代码并缓存起来,除非你的模板文件被修改了,否则不会重新编译。
<style> .article-content p{ text-indent: 2em; line-height: 1.75rem; }</style>

blade 模板引擎常用语法

1.模板继承

    <html lang="en">
    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
        @p('head')
            <link rel="stylesheet" href="style.css" />
        @show
    </head>
    <body>
        @yield('body')
        @p('message')
            @parent
            <p>parent message.</p>
        @show
    </body>
    </html>
     
    <!-- app/views/home.blade.php -->
    @extends('layouts.base')
    
    @p('head')
        <link rel="stylesheet" href="another.css" />
    @endp
    
    @p('body')
        <h1>Hurray!</h1>
        <p>We have a template!</p>
    @stop
    
    @p('message')
        @parent
        <p>Fourth</p>
    @stop
        
2. 输出数据
    //直接输出变量
    
    { { $name } }
    
    //输出带有html的字符串并解析
    
    { !! $links !! }
    
    //原样输出
    
     @{ { name } }  //输出的结果是 { { name } }
     
     

注意:Blade { { } } 声明中的内容是自动通过 PHP 的 htmlentities 方法过滤的

3. 三元运算符
{ { isset($name) ? $name : 'Default' } }

{ { $name or 'Default' } }

4.if语句

    @if ($something == '1')
        <p>1</p>
    @elseif ($something == '2')
        <p>2</p>
    @else
        <p>3</p>
    @endif
    
    
    @unless (true|false)
          You are not signed in.
    @endunless
    
    //@hasSection 指令来判断提供给布局的挂件是否包含了内容
    @hasSection('demo')
       dd
    @else
        App Name
    @endif
    
5.循环

Blade 也提供了一些简单指令来支持 PHP 的循环结构。

    @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

Blade 也提供了终止迭代或取消当前迭代的指令:

    @foreach ($users as $user)
      @if($user->type == 1)
        @continue
      @endif
    
      <li>{ { $user->name } }</li>
    
      @if($user->number == 5)
        @break
      @endif
    @endforeach
    
    
    
    @foreach ($users as $user)
          @continue($user->type == 1)
        
            <li>{{ $user->name }}</li>
        
          @break($user->number == 5)
    @endforeach

6.模板注释
{ {-- This is a pretty, and secret Blade comment. --} }

7.包含视图
 @include('view.name')
 
 @include('view.name', ['some' => 'data'])
 
 @each('view.name', $jobs, 'job')
 //@each  第一个参数是数组或集合中每个元素需要被渲染的视图名称。
 //@each  第二个参数是一个数组或集合,被用来提供迭代。
 //@each  第三个参数是要分配给当前视图的变量名
 //@each  第四个参数到 @each 指令。如果所提供的数组是空数组的话,该参数所提供的视图将会被引入

Blade 已有的基础模板上加入新的内容

@push('scripts')
  <script src="/example.js"></script>
@endpush

//使用这个
<head>
  <!-- Head Contents -->

  @stack('scripts')
</head>

8.使用php自带的函数
{ !! join(', ', $post->tagLinks()) !! }

{ { $time|date('Ymd') } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值