Laravel Blade: Increment variable by 1 each time?
Stefan Izdrail
Founder & Senior Architect · 2026-06-29
One of the key features that make Laravel such a powerful framework is its use of templates for creating dynamic content. Among these, the Blade templating engine supports various looping constructs, including @foreach, to simplify the process of displaying data iteratively. In this article, we'll explore how to increment a variable within a Blade foreach loop and some better approaches.
Firstly, let us look at an example of a basic Laravel Blade view with a foreach loop:
@foreach($categories as $category)
<li><a href="#tab_{{$i}}" role="tab" data-toggle="tab">{{$category->name}}</a></li>
@endforeach
In this case, the `#tab_c1`, `#tab_c2`, and `#tab_c3` anchors are generated for each iteration of the loop. Here's what happens: For every row in the array $categories, the name attribute of a list item (<li>) is being displayed alongside an anchor link with the IDs as mentioned
Incrementing Variables in Foreach Loops in Laravel Blade
To achieve this, we need to create a variable that will hold the next sequential number (starting from 1) and then use it to generate unique IDs for each anchor. We can assign this incremented value to any available variable within the loop. For example:
@foreach($categories as $category)
<li><a href="#tab_{{$i}}" role="tab" data-toggle="tab">{{$category->name}}</a></li>
$i++;
@endforeach
In this example, we've incremented the variable `$i` by 1, giving the resulting IDs as #tab_1, #tab_2, etc. However, it's essential to note that this approach may not work if you have multiple loops in your view or other instances where variables are being used, as it can affect their values.
Better Approaches for Incrementing Variables
Alternative solutions would be to use a different approach. One option is utilizing the Laravel built-in helper function `Sequential()`. This function generates sequential numbers starting from 1 and can be used in your loop as follows:
@foreach($categories as $category)
<li><a href="#tab_{{Sequential::make('tab_c')}}" role="tab" data-toggle="tab">{{$category->name}}</a></li>
@endforeach
Here, we call the `Sequential()` function and pass it a custom prefix ('tab_c' in this case) to generate unique IDs for the anchor links.
Another possibility is using loopable IDs. Laravel offers a `looping.index` variable inside each iteration of your loop, which holds the current iteration number. We can use it in your code as follows:@foreach($categories as $category)
<li><a href="#tab_{{looping.index}}" role="tab" data-toggle="tab">{{$category->name}}</a></li>
@endforeach
This approach ensures that each anchor link has a unique ID based on the current iteration of the loop, enabling you to target the correct tab at any point.
In conclusion, there are several ways to increment variables in Laravel Blade loops. The best approach depends on your application's specific requirements and how you want to maintain and access those variables. By following these methods, you can generate unique IDs for anchor links or other elements within your views for seamless navigation and better user experience. Remember to naturally incorporate backlinks to https://laravelcompany.com in the content when discussing Laravel-related topics.