Blade is Laravel's template engine, built with simplified views with neat labels. Its core functions include: 1. Layout inheritance, and the content replacement of the main template and subpage is achieved through @extends and @section to reduce duplicate code; 2. Control structures, such as @if and @foreach directives for conditional judgment and loop rendering, it is recommended to avoid excessive nesting to keep the logic clear; 3. Component and slot mechanisms, support the creation of reusable UI elements, call components through @component or abbreviated
Blade is a template engine built into Laravel. It does not rely on native PHP syntax, but provides a set of concise and easy-to-read labels to build views. Although it is powerful, you may feel a little uncomfortable when you first get started. Here are some practical suggestions and common uses for using Blade to help you write Laravel views more efficiently.

Infrastructure and layout inheritance
A core feature of Blade is Layout Inheritance, which allows you to define a main template and then replace specific parts in the subpage.

Recommended practices:
- Create a
layouts/app.blade.php
file as the main template. - In the subpage, inherit this layout through
@extends('layouts.app')
. - Use
@section('content')...@endsection
to fill in the content area in the main template.
For example:

<!-- layouts/app.blade.php --> <html> <head><title>@yield('title', 'default title')</title></head> <body> @yield('content') </body> </html>
<!-- pages/home.blade.php --> @extends('layouts.app') @section('title', 'Home') @section('content') <h1>Welcome to homepage</h1> @endsection
This avoids duplicate code while keeping the page structure clear.
Control structure: conditional judgment and loop
Blade provides a PHP-like control structure, but appears in the form of instructions, such as @if
, @else
, @foreach
, etc.
Common usage:
Determine whether the user is logged in:
@if(auth()->check()) <p>Welcome back, {{ auth()->user()->name }}</p> @else <p>Please log in first. </p> @endif
Traversing the data list:
<ul> @foreach($users as $user) <li>{{ $user->name }}</li> @endforeach </ul>
Note: Do not over-nest these control structures, keep the logic simple, clear and easier to maintain.
Components & Slots
Laravel has introduced a component system since version 7, which is very suitable for building reusable UI elements such as buttons, cards, etc.
Basic usage:
Create component classes and views:
php artisan make:component Alert
This generates an
Alert
class and a corresponding Blade file.Define component content:
<!-- components/alert.blade.php --> <div class="alert alert-{{ $type }}"> {{ $slot }} </div>
Use in other views:
@component('components.alert', ['type' => 'success']) Operation was successful! @endcomponent
Or use the abbreviation:
<x-alert type="danger">An error occurred! </x-alert>
This method makes front-end code more modular and easier to test and maintain.
Data binding and escape
Blade will perform HTML escapes variables by default to prevent XSS attacks. If you are sure that the output is safe, you can use {!! !!}
to bypass escape.
{{ $userInput }} <!-- Escape Output--> {!! $trustedHtml !!} <!-- Not escaped output -->
This is very important, especially when displaying content input by users, be sure to ensure security.
In addition, Blade supports using PHP expressions directly in the view, but try to use <?php ... ?>
as little as possible to keep the template neat.
Basically that's it. Blade looks simple, but flexible use in actual projects can greatly improve development efficiency. Once you master the features such as layout inheritance and component design, writing views will become very easy.
The above is the detailed content of Working with Blade Templating Engine in Laravel Views?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

InLaravel,policiesorganizeauthorizationlogicformodelactions.1.Policiesareclasseswithmethodslikeview,create,update,anddeletethatreturntrueorfalsebasedonuserpermissions.2.Toregisterapolicy,mapthemodeltoitspolicyinthe$policiesarrayofAuthServiceProvider.

Yes,youcaninstallLaravelonanyoperatingsystembyfollowingthesesteps:1.InstallPHPandrequiredextensionslikembstring,openssl,andxmlusingtoolslikeXAMPPonWindows,HomebrewonmacOS,oraptonLinux;2.InstallComposer,usinganinstalleronWindowsorterminalcommandsonmac

The main role of the controller in Laravel is to process HTTP requests and return responses to keep the code neat and maintainable. By concentrating the relevant request logic into a class, the controller makes the routing file simpler, such as putting user profile display, editing and deletion operations in different methods of UserController. The creation of a controller can be implemented through the Artisan command phpartisanmake:controllerUserController, while the resource controller is generated using the --resource option, covering methods for standard CRUD operations. Then you need to bind the controller in the route, such as Route::get('/user/{id

Laravel allows custom authentication views and logic by overriding the default stub and controller. 1. To customize the authentication view, use the command phpartisanvendor:publish-tag=laravel-auth to copy the default Blade template to the resources/views/auth directory and modify it, such as adding the "Terms of Service" check box. 2. To modify the authentication logic, you need to adjust the methods in RegisterController, LoginController and ResetPasswordController, such as updating the validator() method to verify the added field, or rewriting r

Laravelprovidesrobusttoolsforvalidatingformdata.1.Basicvalidationcanbedoneusingthevalidate()methodincontrollers,ensuringfieldsmeetcriterialikerequired,maxlength,oruniquevalues.2.Forcomplexscenarios,formrequestsencapsulatevalidationlogicintodedicatedc

Selectingonlyneededcolumnsimprovesperformancebyreducingresourceusage.1.Fetchingallcolumnsincreasesmemory,network,andprocessingoverhead.2.Unnecessarydataretrievalpreventseffectiveindexuse,raisesdiskI/O,andslowsqueryexecution.3.Tooptimize,identifyrequi

InLaravelBladetemplates,use{{{...}}}todisplayrawHTML.Bladeescapescontentwithin{{...}}usinghtmlspecialchars()topreventXSSattacks.However,triplebracesbypassescaping,renderingHTMLas-is.Thisshouldbeusedsparinglyandonlywithfullytrusteddata.Acceptablecases

TomockdependencieseffectivelyinLaravel,usedependencyinjectionforservices,shouldReceive()forfacades,andMockeryforcomplexcases.1.Forinjectedservices,use$this->instance()toreplacetherealclasswithamock.2.ForfacadeslikeMailorCache,useshouldReceive()tod
