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='component'> <!-- $title,$content 变量实际上就是预定义的插槽 --> <p class='title'>{{ $title }}</p> <p class='content'>{{ $content }}</p> </p>
1.4.2 Use component
Path: Laravel/resources/views/test.blade.php
@component('component') @slot('title') 组件标题 @endsolt @slot('content') 组件内容 @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:
@foreach ($data as $k => $v) {{ $k }} <br /> @empty
@endforeach
4. Use native PHP
@php echo "使用原生 PHP"; @endphp
5. Contain subviews
Note
/** * 父视图 * 父视图拥有变量 $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>
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!