Bird
Raised Fist0
Laravelframework~5 mins

Control structures (@if, @foreach, @for) in Laravel - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the @if directive do in Laravel Blade templates?
The @if directive checks a condition and shows the enclosed HTML only if the condition is true. It's like asking a question: if this is true, then do something.
Click to reveal answer
beginner
How do you loop over a list of items in Blade using @foreach?
You use @foreach to repeat a block of HTML for each item in a list. It’s like saying: for each item in this list, show me this HTML with that item’s data.
Click to reveal answer
intermediate
What is the difference between @foreach and @for in Blade?
@foreach loops over each element in a collection or array, while @for loops a set number of times using a counter. Use @foreach for lists, and @for when you know how many times to repeat.
Click to reveal answer
intermediate
How do you write an @if-@elseif-@else structure in Blade?
You start with @if(condition), then add @elseif(another condition) for extra checks, and finish with @else for the default case. This lets you choose between multiple options.
Click to reveal answer
advanced
Can you use @continue and @break inside @foreach loops in Blade? What do they do?
Yes! @continue skips the current loop iteration and moves to the next item. @break stops the loop completely. They help control the loop flow like traffic signals.
Click to reveal answer
What will @if($user->isAdmin()) do in a Blade template?
AAlways show content
BLoop through all users
CShow content only if the user is an admin
DHide content if user is admin
Which directive is best to loop over an array of posts in Blade?
A@if
B@foreach
C@for
D@while
What does @break do inside a @foreach loop?
ASkips the current item
BDoes nothing
CRestarts the loop
DStops the loop completely
How do you write a loop that runs exactly 5 times in Blade?
A@for($i = 0; $i < 5; $i++)
B@if($i < 5)
C@foreach($items as $item)
D@while($i < 5)
Which directive lets you check multiple conditions in Blade?
A@if, @elseif, @else
B@foreach, @for
C@switch, @case
D@while, @break
Explain how to use @if, @elseif, and @else in a Blade template to handle different conditions.
Think of it like asking questions one after another.
You got /4 concepts.
    Describe the difference between @foreach and @for loops in Blade and when to use each.
    One is for lists, the other for counting.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the @if directive do in a Laravel Blade template?
      easy
      A. It shows content only if a condition is true.
      B. It repeats content for each item in a list.
      C. It repeats content a fixed number of times.
      D. It defines a variable inside the template.

      Solution

      1. Step 1: Understand the purpose of @if

        The @if directive is used to check a condition and show content only when that condition is true.
      2. Step 2: Compare with other directives

        @foreach repeats content for each item, and @for repeats content a set number of times, so they do not match the description.
      3. Final Answer:

        It shows content only if a condition is true. -> Option A
      4. Quick Check:

        @if = conditional display [OK]
      Hint: @if controls conditional display of content [OK]
      Common Mistakes:
      • Confusing @if with @foreach or @for
      • Thinking @if repeats content
      • Assuming @if defines variables
      2. Which of the following is the correct syntax to start a @foreach loop in Laravel Blade?
      easy
      A. @foreach $items as $item
      B. @foreach $item in $items
      C. @foreach($item in $items)
      D. @foreach($items as $item)

      Solution

      1. Step 1: Recall correct @foreach syntax

        The correct syntax uses parentheses and the keyword as: @foreach($items as $item).
      2. Step 2: Identify incorrect options

        Options A and D miss parentheses, and C uses incorrect syntax in instead of as.
      3. Final Answer:

        @foreach($items as $item) -> Option D
      4. Quick Check:

        @foreach syntax = parentheses + 'as' [OK]
      Hint: Use parentheses and 'as' keyword in @foreach [OK]
      Common Mistakes:
      • Omitting parentheses
      • Using 'in' instead of 'as'
      • Missing $ on variables
      3. What will be the output of this Blade snippet?
      @for($i = 1; $i <= 3; $i++)
        Number: {{ $i }}
      @endfor
      medium
      A. No output because of syntax error
      B. Number: 0 Number: 1 Number: 2
      C. Number: 1 Number: 2 Number: 3
      D. Number: 1 Number: 2 Number: 3 Number: 4

      Solution

      1. Step 1: Analyze the for loop range

        The loop starts at 1 and runs while $i is less than or equal to 3, so it runs for 1, 2, and 3.
      2. Step 2: Determine output for each iteration

        Each iteration prints "Number: " followed by the current $i value, so output is "Number: 1 Number: 2 Number: 3".
      3. Final Answer:

        Number: 1 Number: 2 Number: 3 -> Option C
      4. Quick Check:

        Loop 1 to 3 prints numbers 1,2,3 [OK]
      Hint: Count loop from start to end inclusive [OK]
      Common Mistakes:
      • Starting loop at 0 instead of 1
      • Including extra iteration beyond 3
      • Assuming syntax error
      4. Identify the error in this Blade code:
      @foreach($users as user)
        {{ $user->name }}
      @endforeach
      medium
      A. Missing parentheses around $users
      B. Missing $ before user in the loop declaration
      C. Incorrect closing tag, should be @endfor
      D. No error, code is correct

      Solution

      1. Step 1: Check foreach syntax

        The variable in the loop must have a $ sign: @foreach($users as $user).
      2. Step 2: Verify other parts

        Parentheses are present, and closing tag is correctly @endforeach. So only missing $ is the error.
      3. Final Answer:

        Missing $ before user in the loop declaration -> Option B
      4. Quick Check:

        Variable names need $ in @foreach [OK]
      Hint: Always use $ before variables in @foreach [OK]
      Common Mistakes:
      • Omitting $ before loop variable
      • Using wrong closing directive
      • Missing parentheses
      5. You want to display a list of products only if there are any products in the array. Which Blade code correctly does this?
      hard
      A. @if(count($products) > 0) @foreach($products as $product) {{ $product->name }} @endforeach @endif
      B. @foreach($products as $product) @if($products) {{ $product->name }} @endif @endforeach
      C. @for($i = 0; $i < count($products); $i++) @if($products[$i]) {{ $products[$i]->name }} @endif @endfor
      D. @if($products) @foreach($products as $product) {{ $product->name }} @endforeach @endif

      Solution

      1. Step 1: Check condition to display list

        @if(count($products) > 0) @foreach($products as $product) {{ $product->name }} @endforeach @endif uses @if(count($products) > 0) which correctly and explicitly checks if products exist before looping.
      2. Step 2: Analyze other options

        B places the check inside the loop, which is redundant since @foreach skips empty arrays. C uses manual @for with array indexing, which is error-prone (e.g., for associative arrays) and less idiomatic than @foreach. D uses @if($products), which works via implicit boolean conversion (empty arrays are falsy) but is less explicit and readable than count > 0.
      3. Final Answer:

        @if(count($products) > 0) followed by @foreach -> Option A
      4. Quick Check:

        Check count > 0 before @foreach [OK]
      Hint: Use count() > 0 to check non-empty arrays before loops [OK]
      Common Mistakes:
      • Using implicit @if($products) instead of explicit count > 0
      • Placing condition inside loop unnecessarily
      • Using @for with inner @if redundantly
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard