DEV Community

Cover image for How to use Forelse loop in Laravel Blade?
Bobby Iliev
Bobby Iliev

Posted on • Updated on • Originally published at devdojo.com

How to use Forelse loop in Laravel Blade?

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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)

Collapse
 
bravemaster619 profile image
bravemaster619

Nice tip!

Collapse
 
leob profile image
leob

Yup that's handy :-)

Collapse
 
alexgeorgiev17 profile image
Alex Georgiev

Great post, Bobby! I'm about to do re-work an existing Laravel blog and this will help me along the process!