We’re going to look at five Laravel Blade directives you can use to simplify your templates, and learn about some convenient directives that make solving specific problems a cinch! If you’re new to the framework, these tips will help you discover the excellent features of Blade, Laravel’s templating engine.
Let’s get started.
- Check if the user is authenticated
When checking if the user is authenticated, you could check if the user isn’t null:
@if(auth()->user())// The user is authenticated.@endif
However, Laravel ships with a custom Blade directive that provides the same functionality more cleanly:
@auth// The user is authenticated.@endauth
- Check if the user is a guest
The inverse of the authentication, we can check if the user is not authenticated using the
guest() method on the
@if(auth()->guest())// The user is not authenticated.@endif
But Laravel also provides a
@guest// The user is not authenticated.@endguest
We can also combine those two directives using the
@guest// The user is not authenticated.@else// The user is authenticated.@endguest
- Include the first view if it exists or includes the second if it doesn’t
Building a website with multiple themes might require including a file if it exists or including another one if it doesn’t, you can easily achieve this with simple blade conditions:
There is a shorter and a much cleaner directive for including the first found template:
- Include a view based on a condition
Conditionally including a view based on a condition is useful when you only want to add content based on logic like an authenticated user.
You could write this using an
We can more cleanly include a view based on a condition with the
@includeWhen directive with one line:
- Include a view if it exists
If you have custom themes system or you dynamically create your Blade views, then checking if the file exists a mandatory thing to do.
exists method on the view helper will do the trick:
But it turns out there is a simple way of handling this using the
includeIf Blade directive:
You can learn about these and other useful tricks in the official Blade documentation for improving your frontend templating in a Laravel project.