Core Directives
Laravel Blade Directives are pretty useful methods for working with Laravel views, this is a quick reference to all core directives.
@if@elseif@else@unless@isset@empty@auth@guest@production@hasSection@sectionMissing@switch@for@foreach@while@continue@break@class@checked@selected@disabled@readonly@required@include@includeIf@includeWhen@includeUnless@includeFirst@each@once@pushOnce@verbatim
@if
blade
@if (count($records) === 1)
I have one record!
@elseif (count($records) > 1)
I have multiple records!
@else
I don't have any records!
@endif
@unless
blade
@unless (Auth::check())
You are not signed in.
@endunless
@isset
blade
@isset($records)
// $records is defined and is not null...
@endisset
@empty
blade
@empty($records)
// $records is "empty"...
@endempty
@auth
blade
@auth
// The user is authenticated...
@endauth
@guest
blade
@guest
// The user is not authenticated...
@endguest
@production
blade
@production
// Production specific content...
@endproduction
@env('staging')
// The application is running in "staging"...
@endenv
@env(['staging', 'production'])
// The application is running in "staging" or "production"...
@endenv
@hasSection
blade
@hasSection('navigation')
<div class="pull-right">
@yield('navigation')
</div>
<div class="clearfix"></div>
@endif
@sectionMissing
blade
@sectionMissing('navigation')
<div class="pull-right">
@include('default-navigation')
</div>
@endif
@switch
blade
@switch($i)
@case(1)
First case...
@break
@case(2)
Second case...
@break
@default
Default case...
@endswitch
@for
blade
@for ($i = 0; $i < 10; $i++)
The current value is {{ $i }}
@endfor
@foreach
blade
@foreach ($users as $user)
<p>This is user {{ $user->id }}</p>
@endforeach
@forelse
blade
@forelse ($users as $user)
<li>{{ $user->name }}</li>
@empty
<p>No users</p>
@endforelse
@while
blade
@while (true)
<p>I'm looping forever.</p>
@endwhile
@continue
blade
@foreach ($users as $user)
@if ($user->type == 1)
@continue
@endif
<li>{{ $user->name }}</li>
@if ($user->number == 5)
@break
@endif
@endforeach
@break
blade
@foreach ($users as $user)
@continue($user->type == 1)
<li>{{ $user->name }}</li>
@break($user->number == 5)
@endforeach
@class
blade
@php
$isActive = false;
$hasError = true;
@endphp
<span @class([
'p-4',
'font-bold' => $isActive,
'text-gray-500' => ! $isActive,
'bg-red' => $hasError,
])></span>
<span class="p-4 text-gray-500 bg-red"></span>
@checked
blade
<input type="checkbox"
name="active"
value="active"
@checked(old('active', $user->active)) />
@selected
blade
<select name="version">
@foreach ($product->versions as $version)
<option value="{{ $version }}" @selected(old('version') == $version)>
{{ $version }}
</option>
@endforeach
</select>
@disabled
blade
<button type="submit" @disabled($errors->isNotEmpty())>Submit</button>
@readonly
blade
<input type="email"
name="email"
value="email@laravel.com"
@readonly($user->isNotAdmin()) />
@required
blade
<input type="text"
name="title"
value="title"
@required($user->isAdmin()) />
@include
blade
<div>
@include('shared.errors')
<form>
<!-- Form Contents -->
</form>
</div>
@includeIf
blade
@includeIf('view.name', ['status' => 'complete'])
@includeWhen
blade
@includeWhen($boolean, 'view.name', ['status' => 'complete'])
@includeUnless
blade
@includeUnless($boolean, 'view.name', ['status' => 'complete'])
@includeFirst
blade
@includeFirst(['custom.admin', 'admin'], ['status' => 'complete'])
@each
blade
@each('view.name', $jobs, 'job')
@each('view.name', $jobs, 'job', 'view.empty')
@once
blade
@once
@push('scripts')
<script>
// Your custom JavaScript...
</script>
@endpush
@endonce
@pushOnce
blade
@pushOnce('scripts')
<script>
// Your custom JavaScript...
</script>
@endPushOnce
@verbatim
blade
@verbatim
<div class="container">
Hello, {{ name }}.
</div>
@endverbatim