How do I use Blade directives (e.g., @if, @foreach)?
Jun 18, 2025 am 12:20 AMIn Laravel's Blade template engine, @if is used for conditional logic, and @foreach is used to loop through arrays or collections. 1. When using @if, the basic syntax displays the content @endif for @if($condition), and supports @else and @elseif to implement multi-condition judgment; 2. When using @foreach, the content is output through @foreach($items as $item), and it is recommended to cooperate with @endforelse or @forelse to process empty data; 3. Other common instructions include @unless (opposite conditions), @isset (check whether the variable exists), @empty (check whether the variable is empty), @switch/@case (multiple condition matching), @auth/@guest (user authentication status judgment); 4. Notes include ensuring that the variable is defined, avoiding modifying data in the view, correctly closing instructions, and clearing caches to improve performance.
In Laravel's Blade templating engine, directives like @if
, @foreach
, and others are used to write clean conditional logic and loops inside your views. You don't need to write raw PHP — Blade handles it in a more readable way.
How to Use @if
for Conditional Logic
Blade's @if
directive works just like a regular PHP if statement but with cleaner syntax inside HTML templates.
Basic usage looks like this:
@if($condition) <!-- Show something when true --> @endif
You can also add @else
or @elseif
:
@if($score > 90) <p>Excellent!</p> @elseif($score > 60) <p>You passed.</p> @else <p>Try again.</p> @endif
This is especially useful for showing different content blocks depending on user roles, data availability, or form validation results.
A common mistake is forgetting that variables must be defined in the controller or view composer. If $score
isn't passed from the controller, you'll get an error.
Looping with @foreach
(and What to Watch For)
The @foreach
directive helps you loop through arrays or collections. It's most often used to display lists of items, such as blog posts or products.
Here's how it works:
@foreach($items as $item) <div>{{ $item->name }}</div> @endforeach
If there's a chance the list could be empty, use @forelse
instead:
@forelse($items as $item) <div>{{ $item->name }}</div> @empty <p>No items found.</p> @endforelse
- Make sure
$items
is not null before looping. - Avoid modifying data directly in the view — keep logic in controllers.
- You can access the loop index via
$loop->index
,$loop->iteration
, etc.
Some developers forget to check whether the variable is set or is actually an array/collection, which can cause errors.
Other Commonly Used Blade Directives
Besides @if
and @foreach
, here are a few other handy directives:
@unless
: Opposite of@if
. Runs when the condition is false.@unless(Auth::check()) Please log in. @endunless
@isset
: Checks if a variable is declared and not null.@empty
: Checks if a variable is empty (null, empty string, empty array, etc).@switch
/@case
: Useful when handling multiple conditions on the same value.@auth
/@guest
: Shortand for checking user authentication status.- Always close your directives properly (
@endif
,@endforeach
, etc). - Don't overdo logic in views — keep complex logic in controllers or services.
- Use comments like
{{-- This is a Blade comment --}}
for internal notes. - Blade caches compiled views by default — run
php artisan view:clear
after major template changes.
These directives help reduce inline PHP and make templates easier to read and maintain.
A Few Tips for Working With Blade Directives
Basically that's it.
The above is the detailed content of How do I use Blade directives (e.g., @if, @foreach)?. 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

ThinkPHP6 template engine usage guide: Create an exquisite front-end interface Introduction: With the development of web applications, the design and development of front-end interfaces have become increasingly important. As a developer, we need to use a powerful template engine to help us create and manage front-end interfaces. ThinkPHP6's template engine is a powerful tool to meet this need. This article will introduce how to use the ThinkPHP6 template engine to create a beautiful front-end interface. Part 1: Install ThinkPHP6 template engine

In recent years, the template engine in PHP programming has become an important part of PHP development, making it easier for programmers to develop and manage pages. This article will introduce common template engines in PHP programming. SmartySmarty is a commonly used PHP template engine. It supports a series of functions such as cached templates, plug-in modules and custom functions. Smarty's syntax is very flexible and can solve the problem of combining PHP variables with HTML tags, making the PHP language more suitable for templated design. Moreover, S

Sharing experience on template engine selection and use in JavaScript development Introduction: In modern front-end development, the template engine (TemplateEngine) plays a crucial role. They enable developers to organize and manage large amounts of dynamic data more efficiently and effectively separate data from interface presentation. At the same time, choosing an appropriate template engine can also bring developers a better development experience and performance optimization. However, among the many JavaScript template engines, which one should you choose? catch

Fat-Free Framework is a lightweight PHP framework designed to provide simple and flexible tools for building web applications. It contains many useful features such as routing, database access, caching, etc. In the Fat-Free framework, using the Blade template engine can help us manage and render templates more conveniently. Blade is the template engine in the Laravel framework, which provides powerful syntax and template inheritance capabilities. In this article I will demonstrate how to use Bl in Fat-Free framework

Golang Template Engine Getting Started Guide: How to use templates in Golang, specific code examples are required Introduction: A template engine is a tool that can combine data and templates and generate documents in HTML, text or other formats. In Golang, we can use the built-in template package (html/template) to implement the functions of the template engine. This article will introduce in detail how to use the template engine in Golang and provide specific code examples. 1. The basic concept of template engine is to understand how to use it.

PHP and CGI template engines: How to achieve website reusability Introduction: When developing websites, we often need to deal with the display of dynamic content. In order to achieve code maintainability and reusability, using a template engine is a wise choice. This article will introduce PHP and CGI, two commonly used template engines, and show how to use them to achieve website reusability through code examples. 1. PHP template engine PHP is a widely used server scripting language with flexibility and powerful functions. PHP template engine is a

With the development of Internet technology, the demand for web applications is also increasing. Web developers often use template engines to generate dynamic web pages. This article will explore a new template engine: the Go language template engine. What is the Go language template engine? Go language is an advanced programming language developed by Google. Its syntax is concise and clear, making it easy to learn and use. The Go language template engine is a template system used to generate HTML templates in the Go language. The Go language template engine is called the "standard library".

As a PHP developer, using a template engine is a natural choice. Smarty is a popular template engine that provides a way to separate HTML/CSS/JavaScript from PHP code, allowing developers to better organize and manage projects. In this article, we will learn how to use Smarty template engine during PHP development. 1. Install Smarty Before, we must install Smarty. In this article we will use Composer to install
