Home >Backend Development >PHP Tutorial >Detailed explanation of the usage of Blade template in Laravel

Detailed explanation of the usage of Blade template in Laravel

*文
*文Original
2018-01-03 16:38:381729browse

Blade is a simple and powerful template engine provided by laravel. The following article mainly introduces you to the relevant information about the use of Blade templates in the Laravel framework. The article introduces it in great detail through example code, which is very useful for your study or work. It has certain reference and learning value. Friends who need it can take a look below. I hope to be helpful.

Introduction

Blade does not restrict you from using native PHP code in views like other popular PHP template engines. In fact, it Just compile the Blade view into native PHP code and cache it. The cache changes when the Blade view changes, which means Blade adds no compilation burden to your application. Blade view files use the .blade.php suffix and are generally stored in the resources/views directory.

1. Inheritance, fragments, placeholders, components, slots

1.1 Inheritance

1.1.1 Define parent template

Laravel/resources/views/base.blade.php

1.1.2 Child template inheritance

Path: Laravel/resources/views/child.blade.php

@extends('base')

1.2 Fragment

1.2.1 Parent template definition fragment

@section('part')
// 中间内容即使一个片段
@show

1.2.2 Child template filling fragment

@section('part')

Fragment filling content

@endsection

1.3 Placeholder

1.3.1 Parent template placeholder:

@yield('title')

1.3.2 Child template fill placeholder

The first type of filling (text):

@section('title' , '填充的文本占位')

The second type of filling (text or html)

@section('title')

Filled placeholder

@endsection

1.4 Components, slots

1.4.1 Define components

Path: Laravel/resources/views/component.blade.php

<p class=&#39;component&#39;>
 <!-- $title,$content 变量实际上就是预定义的插槽 -->
 <p class=&#39;title&#39;>{{ $title }}</p>
 <p class=&#39;content&#39;>{{ $content }}</p>
</p>

1.4.2 Use component

Path: Laravel/resources/views/test.blade.php

@component(&#39;component&#39;)
 @slot(&#39;title&#39;)
  组件标题
 @endsolt
 
 @slot(&#39;content&#39;)
  组件内容
 @endslot
@endcomponent

2. Data display

2.1 Escaped output

{{ $name }}

2.2 Unescaped output

{!! $name !!}

2.3 Original format output

First type (suitable for Small quantity):

@{{ name }}

The second type (suitable for large quantity):

@verbatim
{{ name }}
{{ sex }}
{{ age }}
@endverbatim

3. Process control

3.1 for

Note:

  • There is no $loop variable

  • No @empty

  • Yes @break

  • Yes @continue

@for ($i = 0; $i < 10; ++$i)
 {{ $i }} <br />
@endfor

3.2 foreach

Note:

  • There is $loop variable

  • There is no @empty

  • There is @break

  • There is @continue

@foreach ($data as $k => $v)
 {{ $k }} <br />
@endforeach

3.3 forelse

##Note:

  • There is $loop variable

  • There must be @empty

  • There is @break

  • Yes@continue

  • @foreach ($data as $k => $v)
     {{ $k }} <br />
    @empty
The array has no data

@endforeach

4. Use native PHP

@php 
echo "使用原生 PHP";
@endphp

5. Contain subviews

Note

  • The included subview can reference all variables defined by the parent view.

  • You can pass additional data to the child view

Define the parent view parent.blade.php, and include the child view child.blade. php, and pass in additional data

/**
 * 父视图
 * 父视图拥有变量 $name = &#39;chenxuelong&#39;
 */

<p class=&#39;parent&#39;>
 <p class=&#39;username&#39;>{{ $username }}</p>
 <p class=&#39;child&#39;>
  <!-- 包含子视图 -->
  @include(&#39;child&#39; , [
   &#39;other&#39; => &#39;额外数据&#39;
  ])
 </p>
</p>

/**
 * 子视图
 */
 <p class=&#39;username&#39;>{{ $username }}</p>
 <p class=&#39;other&#39;>{{ $other }}</p>

Related recommendations:

Explore how Laravel’s middleware is implemented

Laravel optimized split routing file

laravel writing APP interface (API)

The above is the detailed content of Detailed explanation of the usage of Blade template in Laravel. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn