Bird
Raised Fist0
Laravelframework~20 mins

Blade directives in Laravel - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Blade Directive Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
1:30remaining
What is the output of this Blade snippet?
Consider this Blade template code:
@if($user->isAdmin())
  

Admin Access

@else

User Access

@endif

If $user->isAdmin() returns false, what will be rendered?
Laravel
@if($user->isAdmin())
  <p>Admin Access</p>
@else
  <p>User Access</p>
@endif
A<p>Admin Access</p>
B<p>User Access</p>
CNo output
DSyntax error
Attempts:
2 left
💡 Hint
Think about what the @else directive does when the condition is false.
📝 Syntax
intermediate
1:30remaining
Which Blade directive correctly loops over an array?
You want to loop over $items in Blade. Which option uses the correct directive syntax?
A
@foreach($items as $item)
  {{ $item }}
@endforeach
B
@loop($items as $item)
  {{ $item }}
@endloop
C
@for($items as $item)
  {{ $item }}
@endfor
D
@repeat($items as $item)
  {{ $item }}
@endrepeat
Attempts:
2 left
💡 Hint
Blade uses a directive named after a common PHP loop for arrays.
🔧 Debug
advanced
2:00remaining
What error does this Blade code cause?
Given this Blade snippet:
@if($count > 0)
  

Count is positive

@else

No count

@endif

What error will occur when rendering?
Laravel
@if($count > 0)
  <p>Count is positive</p>
@else
  <p>No count</p>
@endif
ARuntime error: Undefined variable $count
BRenders both paragraphs
CNo output
DSyntax error: Unexpected @else without matching @if
Attempts:
2 left
💡 Hint
Check the placement of @else relative to @endif.
❓ state_output
advanced
1:30remaining
What is the output of this Blade component with @isset?
Given $title = null; and this Blade code:
@isset($title)
  

{{ $title }}

@else

Default Title

@endisset

What will be rendered?
Laravel
@isset($title)
  <h1>{{ $title }}</h1>
@else
  <h1>Default Title</h1>
@endisset
A<h1>Default Title</h1>
B<h1></h1>
CNo output
D<h1>null</h1>
Attempts:
2 left
💡 Hint
Remember what @isset checks for in Blade.
🧠 Conceptual
expert
2:00remaining
Which Blade directive is used to include a child view and pass data?
You want to include a Blade view named header and pass ['title' => 'Welcome'] to it. Which directive and syntax is correct?
A@extends('header', ['title' => 'Welcome'])
B@component('header', ['title' => 'Welcome']) @endcomponent
C@include('header', ['title' => 'Welcome'])
D@yield('header', ['title' => 'Welcome'])
Attempts:
2 left
💡 Hint
Think about the directive that inserts a view and allows passing variables.

Practice

(1/5)
1. Which Blade directive is used to display a variable safely escaped in a Laravel view?
easy
A. @foreach($variable as $item)
B. @php $variable @endphp
C. {{ $variable }}
D. @if($variable)

Solution

  1. Step 1: Understand Blade variable display

    Blade uses double curly braces {{ }} to safely display variables with HTML escaping.
  2. Step 2: Identify correct directive for safe output

    The {{ $variable }} syntax outputs the variable safely, preventing XSS attacks.
  3. Final Answer:

    {{ $variable }} -> Option C
  4. Quick Check:

    Safe variable display = {{ $variable }} [OK]
Hint: Use double curly braces {{ }} for safe variable output [OK]
Common Mistakes:
  • Using @php for output instead of {{ }}
  • Confusing @if with variable display
  • Using @foreach for single variable output
2. Which of the following is the correct syntax to start a Blade loop over an array $items?
easy
A. @loop($items as $item)
B. @for($items as $item)
C. @while($items as $item)
D. @foreach($items as $item)

Solution

  1. Step 1: Recall Blade loop directives

    Blade uses @foreach to loop over arrays or collections.
  2. Step 2: Match correct syntax

    The correct syntax is @foreach($items as $item), which loops through each item.
  3. Final Answer:

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

    Loop over array = @foreach [OK]
Hint: Use @foreach for looping arrays in Blade [OK]
Common Mistakes:
  • Using @loop which does not exist
  • Using @for incorrectly for arrays
  • Using @while for array loops
3. What will be the output of this Blade snippet if $count = 3?
@if($count > 5)
  Large
@elseif($count > 1)
  Medium
@else
  Small
@endif
medium
A. Large
B. Medium
C. Small
D. No output

Solution

  1. Step 1: Evaluate the condition $count > 5

    Since $count = 3, 3 > 5 is false, so skip the first block.
  2. Step 2: Evaluate the @elseif($count > 1) condition

    3 > 1 is true, so Blade outputs "Medium" and skips the @else.
  3. Final Answer:

    Medium -> Option B
  4. Quick Check:

    3 > 1 but not > 5 = Medium [OK]
Hint: Check conditions top to bottom; first true block runs [OK]
Common Mistakes:
  • Choosing Large because 3 is close to 5
  • Ignoring @elseif and picking @else
  • Thinking all blocks output
4. Identify the error in this Blade snippet:
@foreach($users as $user)
  

{{ $user->name }}

@endforeach @endfor
medium
A. Incorrect closing directive @endfor instead of @endforeach
B. Missing closing @endforeach directive
C. Incorrect variable name $user instead of $users
D. Missing opening @for directive

Solution

  1. Step 1: Check loop opening and closing directives

    The loop starts with @foreach but incorrectly ends with @endfor.
  2. Step 2: Match correct closing directive

    Blade requires @endforeach to close a @foreach loop, so @endfor is invalid here.
  3. Final Answer:

    Incorrect closing directive @endfor instead of @endforeach -> Option A
  4. Quick Check:

    Match @foreach with @endforeach [OK]
Hint: Close @foreach with @endforeach, not @endfor [OK]
Common Mistakes:
  • Using @endfor to close @foreach
  • Confusing $user and $users variables
  • Missing closing directive entirely
5. You want to include a Blade template named header.blade.php inside your main view. Which directive correctly includes it and passes a variable $title with value 'Welcome'?
hard
A. @include('header', ['title' => 'Welcome'])
B. @include('header', $title = 'Welcome')
C. @include('header', ['title' => Welcome])
D. @include('header', title = 'Welcome')

Solution

  1. Step 1: Recall correct syntax for @include with data

    Blade's @include accepts the view name and an associative array of data.
  2. Step 2: Check array syntax for passing variables

    The correct way is @include('header', ['title' => 'Welcome']) with quotes around string values.
  3. Final Answer:

    @include('header', ['title' => 'Welcome']) -> Option A
  4. Quick Check:

    Pass variables as array in @include [OK]
Hint: Pass variables as array in @include(['key' => value]) [OK]
Common Mistakes:
  • Passing variable without array brackets
  • Missing quotes around string values
  • Using assignment syntax inside @include
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