Home > Article > Backend Development > Detailed explanation of the use of Blade templates in Laravel
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.
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
@section('part') // 中间内容即使一个片段 @show1.2.2 Sub-template filling fragment
@section('part')Fragment filling content
@endsection
1.3 Placeholder
@yield('title')1.3.2 Subtemplate filling placeholderFirst filling (text):
@section('title' , '填充的文本占位')Second filling (text or html)
@section('title')Filled placeholders
##
@endsection
1.4.1 Define components
Path: Laravel/resources/views/component.blade.php
<p class='component'> <!-- $title,$content 变量实际上就是预定义的插槽 --> <p class='title'>{{ $title }}</p> <p class='content'>{{ $content }}</p> </p>
Path: Laravel/resources/views/test.blade.php
@component('component') @slot('title') 组件标题 @endsolt @slot('content') 组件内容 @endslot @endcomponent
2. Data display
{{ $name }}
2.2 Unescaped output
{!! $name !!}
2.3 Original format output
The first type (not suitable for much):
@{{ name }}
The second type (suitable for large amounts):
@verbatim {{ name }} {{ sex }} {{ age }} @endverbatim
3.1 for
There is no $loop variable
# #有@continue
@for ($i = 0; $i < 10; ++$i) {{ $i }} <br /> @endfor
Note :
##There is $loop variable
##There is @continue
@foreach ($data as $k => $v) {{ $k }} <br /> @endforeach
Note:
is required There is @empty
@foreach ($data as $k => $v) {{ $k }} <br /> @empty
@endforeach
@php echo "使用原生 PHP"; @endphp5. Containing subviews
Note
You can pass additional data to the child view
/** * 父视图 * 父视图拥有变量 $name = 'chenxuelong' */ <p class='parent'> <p class='username'>{{ $username }}</p> <p class='child'> <!-- 包含子视图 --> @include('child' , [ 'other' => '额外数据' ]) </p> </p> /** * 子视图 */ <p class='username'>{{ $username }}</p> <p class='other'>{{ $other }}</p>
The above is the detailed content of Detailed explanation of the use of Blade templates in Laravel. For more information, please follow other related articles on the PHP Chinese website!