Introduction
If you have ever done any coding you are most likely well familiar with the foreach
loops. Without any doubt, a foreach
loop is one of the best ways to iterate over the elements of the collection.
However, in case you have an empty collection, you would need an additional if
statement so that you could point a valid message to your users.
Luckily Laravel provides awesome Blade Templates that you could use to make your life easier!
In this post, I will show you how to use forelse
in Laravel!
Prerequisites
Before you get started you would need to have Laravel already installed.
If this is not the case you can follow the steps here on How to Install Laravel on DigitalOcean with 1-Click?!
Check if not empty then
What I would usually do in order to check if a collection is empty in my Blade view is to use an if-else
statement like this:
@if($posts->isNotEmpty())
@foreach ($posts as $post)
<p>This is the post title {{ $post->title}}</p>
@endforeach
@else
<p>No posts found</p>
@endif
In the above example, we first wrap up our foreach
loop in an if
statement, and by using the isNotEmpty()
we check if the collection is empty, and in case that it is empty we then print the No posts found
message.
This works pretty well, but Laravel has a more elegant way of doing things!
Forelse example
Rather than having to nest our foreach
loop inside of an if
statement, what we could do instead is use the forelse
blade template:
@forelse ($posts as $post)
<p>This is the post title {{ $post->title}}</p>
@empty
<p>No posts found</p>
@endforelse
As you can see we would get the same result but with less code and it is much easier to read!
Conclusion
You now know how to use forelse
in Blade views and have much more cleaner and easier to read code!
For more great Blade templates, I would recommend checking out the official documentation here.
If you are just getting started with Laravel, make sure to check this introduction to Laravel video series!
Hope that this helps!
Top comments (3)
Nice tip!
Yup that's handy :-)
Great post, Bobby! I'm about to do re-work an existing Laravel blog and this will help me along the process!