Laravel 11.23: Mastering the New Blade Helpers, Defer, and Query Builder Methods

Laravel////3 min read

Overview

Laravel introduces a significant suite of quality-of-life improvements designed to streamline developer workflows and enhance application performance. This release focuses on reducing boilerplate in Blade templates, expanding PHP BackedEnums support in authorization, and introducing the much-anticipated defer helper for background task execution.

Prerequisites

To follow this guide, you should be comfortable with PHP 8.2+, have a basic understanding of Laravel's Laravel Query Builder and Blade templating engine, and understand the concept of Laravel Gates.

Key Libraries & Tools

  • Laravel 11.23: The core framework update featuring these new utilities.
  • Livewire: Often used in conjunction with these helpers for reactive frontends.
  • Eloquent: Laravel's ORM which receives mirrored methods in the query builder.

Code Walkthrough

The Blade when Helper

Before this release, conditionally adding attributes in Blade felt clunky. You either used ternary operators with empty strings or wrapped elements in @if blocks. The new when helper cleans this up significantly.

<div {{ when($shouldPoll, 'wire:poll') }}>
    <!-- Content -->
</div>

Laravel only renders the attribute if $shouldPoll evaluates to true, removing the need for an explicit "else" case or empty strings.

Database & Collection Enhancements

Laravel brings consistency to the Laravel Query Builder and Collections by porting popular Eloquent methods. You can now use firstOrFail directly on a DB table query.

# Using Query Builder
$user = DB::table('users')->where('email', '[email protected]')->firstOrFail();

# Using Collections
$users = User::all();
$user = $users->findOrFail(200); // Throws ModelNotFoundException if missing

Deferring Heavy Tasks

One of the most powerful additions is the defer function. It allows you to send a response to the user immediately while continuing to execute a task in the background without setting up a full queue system.

public function store()
{
    // Logic...
    
    defer(fn () => Analytics::track($data));

    return response()->json(['message' => 'Success']);
}

Syntax Notes

  • Gate Enums: You can now pass PHP BackedEnums instances directly to Gate::allows(Permission::Edit) instead of calling Permission::Edit->value.
  • Validation: The confirmed rule now accepts a custom field name: confirmed:custom_password_field.

Practical Examples

  • Image Handling: Use min_ratio and max_ratio validation rules to prevent users from uploading ultra-wide or ultra-tall images that break your UI layout.
  • User Experience: Use defer for sending webhooks or tracking analytics where the user shouldn't wait for the third-party API response to see their dashboard.

Tips & Gotchas

  • Deferred execution: Remember that defer still consumes your web server's resources. For extremely long-running tasks, a dedicated Redis queue remains the best practice.
  • Query Builder: firstOrFail on the query builder returns a generic stdClass object, not an Eloquent model, though it still throws the ModelNotFoundException.
Topic DensityMention share of the most discussed topics · 13 mentions across 9 distinct topics
Blade
15%· products
Laravel
15%· products
Laravel Query Builder
15%· products
PHP BackedEnums
15%· products
Eloquent
8%· products
Other topics
31%
End of Article
Source video
Laravel 11.23: Mastering the New Blade Helpers, Defer, and Query Builder Methods

When Helper, Find Or Fail, Defer & more in Laravel 11.23

Watch

Laravel // 6:29

The official YouTube channel of Laravel, the clean stack for Artisans and agents. We will update you on what's new in the world of Laravel, from the framework to our products Cloud, Forge, and Nightwatch.

3 min read0%
3 min read