Blade::if() Directives

Blade::if() Directives

A new Blade addition in Laravel 5.5 will add support for simplifying custom if statements in your views.

The syntax might something like this in your AppServiceProvider::boot() method:

use Illuminate\Support\Facades\Blade;

Blade::if('admin', function () {
    return auth()->check() && auth()->user()->isAdmin();

The new Blade::if() makes it convenient to abstract repetitive checks out of templates, making them more readable:

    <a href="{{ route('super.secret') }}">Secret Page</a>
    Welcome Guest. <a href="{{ route('login') }}">Login</a>

In previous versions of Laravel, you would have to write a bit more code. For example, David Hemphill tweeted some really cool directives using this technique in Laravel 5.4:

Which is now simplified even more in Laravel 5.5:

Blade::if('prod', function () {
    return app()->environment('production');

You can also pass arguments to make the checks more dynamic:

Blade::if('env', function ($env) {
    return app()->environment($env);

Which would then look like this in your templates:

  <script src="some-prod.js"></script>

If you want to learn more about Blade::if(), Laracasts has a video tutorial on it, and we look forward to seeing what you’ll come up with!

Filed in: Laravel 5.5 / Blade
Laravel News Partners

Laravel Jobs

Senior Full-Time Laravel Developer (REMOTE)
Vue School
Senior Laravel Developer
Remote, USA & Canada Only
Backend Software Engineer
Remote, USA Only
Full Stack Laravel Developer (Full-time/Contract)
Remote or Columbus, OH
Backend PHP Developer


Join 31,000+ others and never miss out on new tips, tutorials, and more.